android活动类构造函数工作

Tij*_*ese 5 java parameters android constructor

在考虑android活动的情况时,第一种工作方法是它的方法.onCreate正确吗?

假设我想将2个参数传递给android活动类说UserHome.为此我创建了活动类的构造函数UserHome并接受了params.

但是当我们调用一个活动时,我们没有初始化Activity类,我们只是创建了一个UserHome类的意图.

然后我们如何在不使用的intent.putExtra("keyName", "somevalue");情况下将params从另一个活动传递给该活动.

专家们请说明我们如何能够涵盖这样的情况.

Cha*_*ase 9

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

例如:

/**
 * 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");