将多个变量值发送到另一个活动

时间:2012-02-21 14:12:32

标签: android android-activity android-intent

所以这是我用来将字符串变量的值传递给另一个活动的代码。

            Intent requestLink = new Intent(Search.this, Results.class);
            requestLink.putExtra("Link", sendLink);
            startActivity(requestLink);

但是如果我希望传输多个变量怎么办?

            Intent requestLink = new Intent(Search.this, Results.class);
            requestLink.putExtra("Link", sendLink);
            startActivity(requestLink);


            Intent userSearch = new Intent(Search.this, Results.class);
            userSearch.putExtra("Search", addressInput);
            startActivity(userSearch);

使用代码两次就会像上面那样只会启动两个单独的活动。那么,我该如何同时传输值呢?

我仍然是Android开发和OOP的新手。

5 个答案:

答案 0 :(得分:3)

您可以为同一意图添加多次调用putExtra:

    Intent requestLink = new Intent(Search.this, Results.class);
    requestLink.putExtra("Link", sendLink);
    requestLink .putExtra("Search", addressInput);
    startActivity(requestLink);

答案 1 :(得分:3)

btnlogin.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent intent=new Intent(getBaseContext(),db.class);
             String username=uname.getText().toString();
             String upaswrd=pass.getText().toString();
            // Bundle bundle=new Bundle();

          intent.putExtra(name,username);
          intent.putExtra(paswrd, upaswrd);

          startActivity(intent);
        }
    });


/** Db.class */

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.db);
    Intent intent=getIntent();
    String uname=intent.getStringExtra(Gmail.name);
    String upass=intent.getStringExtra(Gmail.paswrd);
    username=(TextView)findViewById(R.id.u);
    username.setText(uname);
    pass=(TextView)findViewById(R.id.p);
    pass.setText(upass);

}

答案 2 :(得分:2)

将两个字符串放在同一个意图中。

Intent intent = new Intent(Search.this, Results.class);
intent.putExtra("Link", sendLink);
intent.putExtra("Search", addressInput);

startActivity(intent);

答案 3 :(得分:2)

您可以使用Bundle在您的活动之间发送数据。 e.g

Intent requestLink = new Intent(Search.this, Results.class);

Bundle bun = new Bundle();
bun.putString("Link",sendLink);
bun.putString("Search", addressInput);

requestLink.putExtras(bun);
startActivity(requestLink);

检查Bundle api文档here

答案 4 :(得分:0)

Intent requestLink = new Intent(Search.this, Results.class);
requestLink.putExtra("Link1", sendLink1);
requestLink.putExtra("Link2", sendLink2);
startActivity(requestLink);

//Second Activity 

Bundle bundle=getIntent().getExtras();
String Link1 =bundle.getString("Link1");
String Link2 =bundle.getString("Link2");

bundle.get ...有很多重载,比如getInt,......取决于需要。