-2

アクティビティ間のインテントを使用して、あるアクティビティから別のアクティビティに値を渡す必要があるプログラムを作成しています。

だからここに私の質問How to Pass and Get an Intent into another activity があります。

以下のコードを参照してください。ボタンクリックを使用して、インテントを別のアクティビティに渡したい..

FirstActivity.java:

 public class FirstActivity extends Activity {
// Initializing variables
EditText inputName;
 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.screen1);

    inputName = (EditText) findViewById(R.id.name);
    Button btnNextScreen = (Button) findViewById(R.id.btnNextScreen);

    //Listening to button event
    btnNextScreen.setOnClickListener(new View.OnClickListener() {

        public void onClick(View arg0) {
            //Code to start a new Intent and to pass value


        }
    });
}
4

5 に答える 5

5

以下のコードを使用して、名前の値を FirstActivity から SecondActivity に渡すだけです。

    btnNextScreen.setOnClickListener(new View.OnClickListener() {

        public void onClick(View arg0) {
            //Starting a new Intent
            Intent nextScreen = new Intent(getApplicationContext(), SecondActivity.class);

            //Sending data to another Activity
            nextScreen.putExtra("name", inputName.getText().toString());
            startActivity(nextScreen);

        }
    });
}

2 番目のアクティビティでは、onCreate() メソッドで以下のコードを使用します。

 TextView txtName = (TextView) findViewById(R.id.txtName);     
 Intent i = getIntent();
    // Receiving the Data

    String name = i.getStringExtra("name");
    txtName.setText(name);
于 2013-04-17T05:38:29.083 に答える
1

はいKetlyen私は@klamitsuriに同意します

コードに示されているように、値を渡すだけです。

  Intent nextScreen = new Intent(getApplicationContext(), SecondActivity.class);

        //Sending data to another Activity
        nextScreen.putExtra("name", inputName.getText().toString());
        startActivity(nextScreen);

簡単に使用するには:

  Intent i = getIntent();
// Receiving the Data

String name = i.getStringExtra("name");
于 2013-04-17T06:16:51.583 に答える
0

startActivityForResult(intent,result); を使用して、値またはデータを渡すことができます。

前のアクティビティによって送信された値を取得するには、関数 onActivityResult(int requestCode, int resultCode,Intent data); をオーバーライドします。

例えば:

 public class MyActivity extends Activity {
 ...

 static final int PICK_CONTACT_REQUEST = 0;

 protected boolean onKeyDown(int keyCode, KeyEvent event) {
     if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) {
         // When the user center presses, let them pick a contact.
         startActivityForResult(
             new Intent(Intent.ACTION_PICK,
             new Uri("content://contacts")),
             PICK_CONTACT_REQUEST);
        return true;
     }
     return false;
 }

 protected void onActivityResult(int requestCode, int resultCode,
         Intent data) {
     if (requestCode == PICK_CONTACT_REQUEST) {
         if (resultCode == RESULT_OK) {
             // A contact was picked.  Here we will just display it
             // to the user.
             startActivity(new Intent(Intent.ACTION_VIEW, data));
         }
     }
 }}
于 2013-04-17T05:43:11.677 に答える
0

現在のアクティビティで、新しいインテントを作成します。

Intent i = new Intent(FirstActivity.this, NewActivity.class);
i.putExtra("new_variable_name","value");
startActivity(i);

次に、新しいアクティビティで、これらの値を取得します。

Bundle extras = getIntent().getExtras();
if (extras != null) {
    String value = extras.getString("new_variable_name");
}
于 2013-04-17T05:37:35.577 に答える
0

最初のアクティビティで

 btnNextScreen.setOnClickListener(new View.OnClickListener() {

    public void onClick(View arg0) {
       Intent i= new Intent(firstActivity.this,secondActivity.class);
       i.putExtra("key","mystring");// key and the value
       startActivity(i);

    }
  });
}

2 番目のアクティビティで onCreate()

setContentView(R.layout.second); 
Bundle extras= getIntent().getExtras();
if(extras!=null)
{
 TextView tv= (TextView)findviewById(R.id.textView1);
 String value = extras.getString("key"); // get the value based on the key
 tv.setText(value); 
} 
于 2013-04-17T05:36:34.703 に答える