如何从以前的活动中获取价值

时间:2011-04-28 06:11:32

标签: android

大家好 在第二个活动中,我设置了一些值以及如何引入第一个活动。我使用Bundle来获取数据。 NullPointerException错误正在发生。

第二个活动中的

    c1.setOnClickListener(new View.OnClickListener() 
    {
        public void onClick(View view) 
        {
            c1.setChecked(true); 
            Bundle bundle = new Bundle();
            bundle.putString("key1",String.valueOf(c1.getText()));
            Intent myIntent = new Intent(view.getContext(), main.class);
            myIntent.putExtras(bundle);
            startActivityForResult(myIntent, 0);
        }

    });

在第一(主要)活动中:

    Bundle bundle = this.getIntent().getExtras();
    check = bundle.getString("key1"); // NullPointerException.

请帮助我。

4 个答案:

答案 0 :(得分:2)

您必须Start Activity For Result机制。因此,当完成第二个活动以将结果返回到第一个活动时。

答案 1 :(得分:2)

您似乎正在从secondactivity(主要)发布firstactivity。在这种情况下,您需要使用finish()返回数据,而不是使用startActivityForResult()再次启动第一项活动。

secondactivity中,使用:

Bundle bundle = new Bundle();
bundle.putString("key1",String.valueOf(c1.getText()));
Intent myIntent = new Intent(view.getContext(), main.class);
myIntent.putExtras(bundle);
setResult(RESULT_OK, myIntent);
finish();

onActivityResult()的{​​{1}}中,使用:

firstactivity

答案 2 :(得分:0)

Mojo Risin是对的,你必须使用Start Activity For Result机制。

您可以在此处查看完整的工作教程http://www.vogella.de/articles/AndroidIntent/article.html#explicitintents

答案 3 :(得分:0)

Intent myIntent=new Intent(v.getContext(),detailPage.class);
            myIntent.putExtra("prodId", "data");
            startActivity(myIntent);

获取

String index=""
index=getIntent().getExtras().getString("prodId");
System.out.println("Position :"+index);