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);
从索引活动中,用户可以从列表中进行选择。
所以,我需要将索引的类变量传递给主要活动。怎么样?
谢谢!
答案 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”变量分享给整个班级。
是什么方式?
谢谢!