java - android Activity 类构造函数工作

标签 java android parameters constructor

当考虑 android Activity 的情况时,第一个起作用的方法是它的 onCreate 方法..对吗?

假设我想将 2 个参数传递给 android Activity 类,比如 UserHome 。为此,我正在创建 Activity 类 UserHome 的构造函数并接受参数。

但是当我们调用一个 Activity 时,我们并没有初始化 Activity 类,我们只是创建了一个 UserHome 类的 Intent 。

那么我们如何在不使用 intent.putExtra("keyName", "somevalue"); 用法的情况下将参数从另一个 Activity 传递到该 Activity 。

请专家说明我们如何涵盖这种情况。?

最佳答案

不确定您为什么不想使用 Intent 参数。这就是他们在那里的目的。如果您需要从应用程序的不同位置传递相同的参数,您可以考虑使用静态构造函数来为您构建 Intent 请求。

例如:

/**
 * Sample activity for passing parameters through a static constructor
 * @author Chase Colburn
 */
public class ParameterizedActivity extends Activity {

    private static final String INTENT_KEY_PARAM_A = "ParamA";

    private static final String INTENT_KEY_PARAM_B = "ParamB";

    /**
     * Static constructor for starting an activity with supplied parameters
     * @param context
     * @param paramA
     * @param paramB
     */
    public static void startActivity(Context context, String paramA, String paramB) {
        // Build extras with passed in parameters
        Bundle extras = new Bundle();
        extras.putString(INTENT_KEY_PARAM_A, paramA);
        extras.putString(INTENT_KEY_PARAM_B, paramB);

        // Create and start intent for this activity
        Intent intent = new Intent(context, ParameterizedActivity.class);
        intent.putExtras(extras);
        context.startActivity(intent);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Extract parameters
        Bundle extras = getIntent().getExtras();
        String paramA = extras.getString(INTENT_KEY_PARAM_A);
        String paramB = extras.getString(INTENT_KEY_PARAM_B);

        // Proceed as normal...
    }
}

然后您可以通过调用启动您的 Activity :

ParameterizedActivity.startActivity(this, "第一个参数", "第二个参数");

关于java - android Activity 类构造函数工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8725530/

相关文章:

Grails - Quartz 作业触发器中的参数

c - 函数返回一个没有相关参数的条件函数

java - 如何将Excel中的值分组到HashMap

java - 向使用 TabPaneBuilder 创建的 TabPane 添加监听器?

java - 不兼容的类型以及尝试 .get 自定义适配器 (Android)

安卓 : Setting a sound from SD card as Ringtone

android - Flutter 谷歌登录为空

java - 如何在 EAR 或 WAR 之外存储 Java EE 配置参数?

java - 计算位图中的点数

java - 如何将对象列表发送到 View 并返回到 Controller 中的 Post 方法