2012-02-21 19 views
3

これは、文字列変数の値を別のアクティビティに転送するために使用するコードです。複数の変数値を別のアクティビティに送信

  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); 

コードを2回使用すると、上記のように2つの別々のアクティビティが開始されます。では、どのようにして値を同時に転送できますか?

私はまだAndroid開発やOOPにはかなり新しいです。

答えて

2

両方のストリングを同じインテントに入れてください。

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

startActivity(intent); 
3

あなたは同じ目的のために複数回putExtraを呼び出す以上のものを追加することができます。

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

あなたがあなたの活動の間でデータを送信するためのバンドルを使用することができます。 例えば

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); 

チェックバンドルAPIドキュメントhere

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); 

} 
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のような多くのオーバーロードがあり、...必要に応じて。

関連する問題