Android 如何从主要活动中的各种活动中获取价值。?

Android 如何从主要活动中的各种活动中获取价值。?,android,android-intent,Android,Android Intent,我想从各种活动中检索字符串。我有一个父活动,其中有5个按钮。每个按钮都有子活动。从第一个子活动开始,我使用intent将字符串传递给父活动。然后,我希望从第二个子活动到父活动获取字符串。我正在获取结果,但第一个子活动值更改为null。同样,我希望从子活动到主活动获取5个不同的值活动 提前谢谢这是我的代码 public class bhk1 extends Activity { Button bed,hall,kitchen,br,upload; TextView hall1,bed

我想从各种活动中检索字符串。我有一个父活动,其中有5个按钮。每个按钮都有子活动。从第一个子活动开始,我使用intent将字符串传递给父活动。然后,我希望从第二个子活动到父活动获取字符串。我正在获取结果,但第一个子活动值更改为null。同样,我希望从子活动到主活动获取5个不同的值活动

提前谢谢这是我的代码

 public class bhk1 extends Activity 
 {
  Button bed,hall,kitchen,br,upload;
  TextView hall1,bedrom,kitc,bath;
 String value,value1;
  protected void onCreate(Bundle savedInstanceState) 
 {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.bhk1);
    bed=(Button)findViewById(id.button1);
    hall=(Button)findViewById(id.button2);
    kitchen=(Button)findViewById(id.button3);
    br=(Button)findViewById(id.button4);
    upload=(Button)findViewById(id.upload);

    hall1=(TextView)findViewById(id.hall);
    bedrom=(TextView)findViewById(id.bedrrom);
    kitc=(TextView)findViewById(id.kitchen);
    bath=(TextView)findViewById(id.bathroom);

/*  Intent intent = getIntent();
    String value = intent.getExtras().getString("hall1");
    System.out.println(value);
    hall1.setText(String.valueOf(value));*/



    Bundle extras = getIntent().getExtras();

    if (extras != null) {
        value  = extras.getString("hall1");
        System.out.println(value);
        hall1.setText(String.valueOf(value));

        value1  = extras.getString("bedroom");
        System.out.println(value1);
        bedrom.setText(String.valueOf(value1));

    }





    // hall1.setText(String.valueOf(value));







    hall.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            bhk1.this.startActivity(new Intent(bhk1.this, recordhall1.class));
        }


        });

    bed.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            bhk1.this.startActivity(new Intent(bhk1.this, recordbed1.class));

        }


        });
    kitchen.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            bhk1.this.startActivity(new Intent(bhk1.this, recordkitchen1.class));
        }


        });
    br.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            bhk1.this.startActivity(new Intent(bhk1.this, recordbr1.class));
        }


        });

    upload.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            bhk1.this.startActivity(new Intent(bhk1.this, recordbr1.class));
        }


        });


}
}


您无法从其他活动中获得价值的原因是,这不是获得额外的正确方法。当您存储Intentextra时,如下所示:

String hall1=String.valueOf((fileUri.getPath()));
Intent i1 = new Intent(recordhall1.this, bhk1.class);
i1.putExtra("hall1", hall1);
startActivity(i1);
然后您应该使用下面的代码来获取额外的

value = getIntent().getStringExtra("hall1");
System.out.println(value);
hall1.setText(value);
您的代码返回null,因为您从未将Bundle作为意图extra

编辑:

如果您不使用Bundle,上述代码将起作用。但是,如果您使用Bundle:

String hall1=String.valueOf((fileUri.getPath()));
Bundle extras = new Bundle();
extras.putString("hall1", hall1);
Intent i1 = new Intent(recordhall1.this, bhk1.class);
i1.putExtras(extras);
startActivity(i1);
然后,您可以使用以下代码获得附加功能:

Bundle extras = getIntent().getExtras();
if (extras != null) {
    value  = extras.getString("hall1");
    System.out.println(value);
    hall1.setText(value);
}

您的意思是
extras
为空吗?此值变为hall1.setText(String.valueOf(value));因此,
extras
不是空的,但是您无法获取
字符串
?我也使用了bundle,但同样的情况发生了我编辑了我的答案。另外,您最好删除
String.valueOf(value)
。为什么?因为
value
已经是一个字符串。还要注意如何存储
Bundle
。它必须使用
i1.putExtras(extras)
,而不是
i1.putExtras(extras)
而不使用
s
Bundle extras = getIntent().getExtras();
if (extras != null) {
    value  = extras.getString("hall1");
    System.out.println(value);
    hall1.setText(value);
}