Tij*_*ese 5 java parameters android constructor
在考虑android活动的情况时,第一种工作方法是它的方法.onCreate
正确吗?
假设我想将2个参数传递给android活动类说UserHome
.为此我创建了活动类的构造函数UserHome
并接受了params.
但是当我们调用一个活动时,我们没有初始化Activity类,我们只是创建了一个UserHome
类的意图.
然后我们如何在不使用的intent.putExtra("keyName", "somevalue");
情况下将params从另一个活动传递给该活动.
专家们请说明我们如何能够涵盖这样的情况.
不确定为什么你不想使用意图参数.这就是他们的目的.如果需要从应用程序的不同位置传递相同的参数,可以考虑使用静态构造函数为您构建意图请求.
例如:
/**
* 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...
}
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以通过致电启动您的活动:
ParameterizedActivity.startActivity(this, "First Parameter", "Second Parameter");