与活动共享数据

时间:2012-11-25 16:44:51

标签: android android-activity

Intent i = new Intent(getApplicationContext(), NewActivity.class);
i.putExtra("new_variable_name","value");
startActivity(i);

Bundle extras = getIntent().getExtras();
if (extras != null) {
String value = extras.getString("new_variable_name");
}

我的情况有点不同:我的主要活动是另一个(索引活动):

Intent index = new Intent(this, Index.class);
startActivity(index);

从索引活动中,用户可以从列表中进行选择。

所以,我需要将索引的类变量传递给主要活动。怎么样?

谢谢!

3 个答案:

答案 0 :(得分:0)

您需要使用活动的方法startActivityforResult

请参阅here上应如何使用它的示例。

基本上,我们的想法是使用Bundles在活动之间传递数据。这样,系统可以恢复活动,即使它们由于缺乏资源而在一段时间之前被破坏了。

答案 1 :(得分:0)

Intent intent= new Intent(this, Index.class);
i.putExtra("data", "data");
startActivity(intent);

在Index类中使用:

Bundle extras = getIntent().getExtras();
String data = extras.getString("data");

答案 2 :(得分:0)

好的,我做完了:

主要活动:

Intent i = new Intent(this, Index.class);
  startActivityForResult(i, 1);

索引:活动:

 button1.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {   
            String result = "1";
            Intent returnIntent = new Intent();
             returnIntent.putExtra("result",result);
             setResult(RESULT_OK,returnIntent);     
             finish();

主要活动:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (requestCode == 1) {

         if(resultCode == RESULT_OK){

          String result=data.getStringExtra("result");
          value=result;
     }

    if (resultCode == RESULT_CANCELED) {
         //Write your code on no result return 

    }}
    }

“result”是索引活动的正确变量,但我需要将该变量用于主类,而不仅仅是在该方法中。

所以我希望将“result”变量分享给整个班级。

是什么方式?

谢谢!