两个活动之间的Android消息问题

时间:2011-08-16 20:27:09

标签: android android-activity android-intent bundle

我在一项活动中有以下代码:

        in= new Intent(ThisActivity.this,AnotherActivity.class);
        imgarr = new ImageView[55];

        imgarr[0]=(ImageView) findViewById(R.id.species3);
        imgarr[0].setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                b.putString("specno",Integer.toString(0)); in.putExtras(b);
                in.setClassName("com.DuckHuntersJournal","com.DuckHuntersJournal._1_TagKillActivity");
                startActivity(in);
            }
        });

这段代码在另一个:

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.menu1tagkill);

        if ((savedInstanceState != null) && savedInstanceState.containsKey("specno")) {
        Log.e(tag, "intent from species not null");
        species.setText(savedInstanceState.getString("specno"));
    }

但是,savedInstanceState为null。
为什么我没有从第一项活动中获得任何数据?

2 个答案:

答案 0 :(得分:3)

您需要使用:

   getIntent().getExtras().getString("specno");

以便从第一个活动中获取传递的字符串。

编辑:我不确定您要执行的操作...要从另一个Activity获取您需要使用getIntent().getExtras()的当前数据

要在Activity转到后台时保存当前统计信息,请使用onSaveInstanceState()方法保存数据,然后使用onCreate(Bundle savedInstance)方法从{{1}获取保存的数据参数。

答案 1 :(得分:1)

您需要在接收活动中执行以下操作:

String species = getIntent().getStringExtra("specno");