1

インテントとバンドルを介してアンドロイドの2つの異なるアクティビティにテキストビューの値を取得する方法教えてください..私のコードは以下の通りです:

Activity1.java

Intent intent = new Intent(Activity1.this,Activity2.class);
Bundle bundle = new Bundle();
bundle.putString("title",ed1.getText().toString());
intent.putExtras(bundle);
startActivity(intent);

Activity2.java

Intent intent = new Intent(Activity1.this,Activity2.class);
Bundle bundle = this.getIntent().getExtras();
String title = bundle.getString("title");
tv = (TextView)findViewById(R.id.projectTitle);
tv.setText(title);
bundle.putString("tit",title);

Activity3.java B

undle bundle = this.getIntent().getExtras();
tv = (TextView)findViewById(R.id.Projecttitle);
tv.setText(til);

アクティビティ1とアクティビティ2ではうまく機能しますが、アクティビティ2とアクティビティ3の間では機能しません

4

2 に答える 2

2

activity3.java のバンドルから文字列値を取得していないため、コードが機能していません。

activity2.java で以下のコードを更新します

Intent intent = new Intent(Activity1.this,Activity2.class);
intent.putExtra("title",tv.getText().toString());
startActivity(intent);

onCreate()そして、Activity3.javaのメソッドで以下のコードを更新してください

Bundle bundle = getIntent().getExtras();
String til = bundle.getString("title");
TextView tv = (TextView)findViewById(R.id.Projecttitle);
tv.setText(til);

それはあなたの問題を解決します。

于 2012-12-26T09:34:06.620 に答える
2

2 番目のアクティビティから 3 番目のアクティビティにデータを設定するには、データをインテントにする必要があります。静止できない場合は、2 番目のアクティビティで実際にインテントにデータを追加している場所と、3 番目のアクティビティでデータを取得する場所にコードを投稿してください。

これを試して:

Intent intent = new Intent(Activity2.this,Activity3.class);

intent.putExtra("title",title)
startActivity(intent);

3 番目のアクティビティで値を取得します。

String title = getIntent().getStringExtra("title");

注: 2 番目のアクティビティでタイトルが変更されていない場合editText.getText().toString();は、putextra メソッドのようにこの手順を実行する必要はありません。

于 2012-12-26T09:38:57.667 に答える