如何使用方法通过intent传递值?

时间:2015-03-15 21:06:06

标签: android android-intent

我的目标是在MyCountDownTimer用完之后通过intent传递值。这是我到目前为止的代码。我该放置putExtra吗?

@Override
    public void onFinish() {


        Intent retryIntent = new Intent(textCounter.getContext(), Retry.class);
        textCounter.getContext().startActivity(retryIntent);




}

这里是我的活动中使用该方法的地方

if (textCounter==null){

                myCountDownTimer.onFinish();
            }

新编辑:

@Override
    public void onClick(View v) {
        if (v.getId()== R.id.retry){

            Bundle extras1 = getIntent().getExtras();
            whichTest = extras1.getInt("whichTest"); //NUllpointerException


            if (whichTest == 1){
                Intent intent1 = new Intent(Retry.this, Test1.class);
                startActivity(intent1);
            }

            if (whichTest == 2){
                Intent intent1 = new Intent(Retry.this, Test2.class);
                startActivity(intent1);}

...

@Override
    public void onFinish() {


        Intent retryIntent = new Intent(textCounter.getContext(), Retry.class);

           if (textCounter.getContext().equals(Test1.class)){
               whichTest = 1;
               retryIntent.putExtra("whichTest",whichTest);
           }
        if (textCounter.getContext().equals(Test2.class)){
            whichTest = 2;
            retryIntent.putExtra("whichTest",whichTest);
        }
        textCounter.getContext().startActivity(retryIntent);

2 个答案:

答案 0 :(得分:1)

您可以使用Intent.putExtra(string key, value)

实施例

retryIntent.putExtra("MY_COUNTDOWN_TIMER_NAME", "George");

您可以通过

在新活动中检索它们
string george = getIntent().getExtras().getString("MY_COUNTDOWN_TIMER_NAME");

检查documentation以获取有关哪些对象可能是额外内容的更多信息。

编辑:

意图的流动。

活动1创建一个意图,它将额外内容放入所述意图中,并启动活动2.

活动2获取使用getIntent()启动它的意图。然后使用getExtras()检索与intent一起传递的所有额外数据。最后,它通过密钥获取额外值。

如果尝试使用getIntent().getExtras()来自未启动的活动,就像活动2一样,您将获得空指针异常。

如果您不确定活动2是否启用了附加功能,您可以随时检查getIntent().getExtras()是否返回null

答案 1 :(得分:0)

您可以在已经在onFinish()方法中编写的两行之间放置该行:

Intent retryIntent = new Intent(textCounter.getContext(), Retry.class);
retryIntent.putExtra(name, value);
textCounter.getContext().startActivity(retryIntent);