Android 如何从主要活动中的各种活动中获取价值。?
我想从各种活动中检索字符串。我有一个父活动,其中有5个按钮。每个按钮都有子活动。从第一个子活动开始,我使用intent将字符串传递给父活动。然后,我希望从第二个子活动到父活动获取字符串。我正在获取结果,但第一个子活动值更改为null。同样,我希望从子活动到主活动获取5个不同的值活动 提前谢谢这是我的代码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
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);
}