关于java:如何将字符串从一个活动传递到另一个活动?

How do you pass a string from one activity to another?

本问题已经有最佳答案,请猛点这里访问。

我想知道如何传递和读取来自另一个活动的一个活动中的字符串。 我有两个活动。 我将它们称为Activity1和Activity2。 我在Activity1中有一个名为course的字符串。 我想在Activity2中读取该字符串。

我试过这样做,但字符串出来了。

public class Activity2 extends Activity1 {

我见过人们使用Intent函数,但我无法弄清楚如何使用它。

有什么建议? 谢谢!


使用意图传递值。

在你的第一个活动中

1
2
3
4
5
6
7
8
 Intent i= new Intent("com.example.secondActivity");
 i.putExtra("key",mystring);
 // for explicit intents
 // Intent i= new Intent(ActivityName.this,SecondActivity.class);    
 // parameter 1 is the key
 // parameter 2 is the value
 // your value
 startActivity(i);

在您的第二个活动中检索它。

1
2
3
4
5
Bundle extras = getIntent().getExtras();
if (extras != null) {
String value = extras.getString("key");
//get the value based on the key
}

要传递自定义对象,您可以查看此链接

Android – Send object from one activity to another Activity using Intent


你的第一个活动,Activity1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public class Activity1 extends Activity {
    Button btn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity1);

        btn=(Button) findViewById(R.id.payBtn);
        btn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {
                Intent intent=new Intent(Activity1.this,Activity2.class);
                intent.putExtra("course","courseValue");
                startActivity(intent);
            }
        });
    }
}

Activity2
public class Activity2 extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity2);

        String course=getIntent().getExtras().getString("course").toString();
        Log.d("course",course);
    }
}

希望这会帮助你。


在您的MainActivity中

1
2
3
Intent i= new Intent(MainActivity.this,SecondActivity.class);
i.putExtra("key",yourstring);
startActiivty(i);

在你的第二个活动onCreate()

1
2
3
4
Bundle extras = getIntent().getExtras();
if (extras != null) {
String value = extras.getString("key");
}

从活动1调用这样的事情:

1
2
3
Intent intent= new Intent("path.secondActivity");
intent.putExtra("keyString",sampleString);
startActiivty(intent);

并在活动2尝试这样的事情:

1
2
3
4
Bundle values = getIntent().getExtras();
if (values != null) {
    String keyString = values.getString("keyString");
}

你走在正确的轨道上 - 你正在使用意图启动第二项活动。您所要做的就是添加intent.putExtra("title", stringObject);,其中stringObject是您要传递的字符串,title是您要为该对象提供的名称。您使用该名称来引用第二个活动中传递的对象,如下所示:

1
String s = (String)getIntent().getExtras().getSerializable("title");


试试这个

公共类Activity2扩展了Activity1