当考虑 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/