2017-07-20 11 views
1

テキストビューに値を渡すときに、アクティビティのボタンがクリックされたときだけ、別のアクティビティに値を渡そうとしています。ここでアクティビティ間でテキストビュー値を渡す

が、私はテキストを設定しようとしています活動です...ここで

public static Button yes; 
public static final String TEST_KEY = "test"; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_question19); 

    yes = (Button) findViewById(R.id.finalYes); 
    yes.setOnClickListener(new View.OnClickListener(){ 
     public void onClick(View v){ 
      Intent myIntent = new Intent(v.getContext(), Question13Activity.class); 
      startActivity(myIntent); 

      Intent i = new Intent(Question12Activity.this, HighRiskActivity.class); 
      i.putExtra(TEST_KEY, "SOME STRINGSSS"); 

     } 
    }); 

はのTextViewの値を更新するための送信先であるHighRiskActivityは私の問題

TextView t; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.high_risk); 
     t = (TextView) findViewById(R.id.abusedOrNah); 

     Bundle extras = getIntent().getExtras(); 
     if(extras != null) 
     { 
      String value = extras.getString(TEST_KEY); 
      t.setText(value); 
     } 

...です私は間違ったデータを渡しているのですか?すべてのヘルプは素晴らしいだろう、これは私が作成していますアプリへの最後のステップです:D

私は、ボタンがクリックされたときQuestion12ActivityがHighRiskActivityに向けることにしたくない

UPDATE。次のアクティビティに移動したいが、ボタンがクリックされると、HighRiskActivityにテキストを渡すことができるようにする。混乱のため申し訳ありませんが、うまくいけば、それはより理にかなって:)

+0

ようこそ! (1)この宿題ですか?そうであれば、そのようにマークする必要があります。 (2)2番目のコードサンプルはどのアクティビティに属していますか?Question13ActivityまたはHighRiskActivity?それはHighRiskActivityのようですが、あなたはHighRiskActivityを起動していません。 – LarsH

+0

はい、私たちはあなたのテキストを設定したいアクティビティのコードと混同していますか? –

+0

これは宿題ではありません私は誰かのために作っているアプリです... 2番目のコードサンプルは、TextViewの値を設定したいところであるHighRiskActivityを示します –

答えて

1

データをこのように渡すようにしてください:

Intent i = new Intent(this, SecondActivity.class); 

Bundle bundle = new Bundle(); 

//Add your data to bundle 
bundle.putString(“test”, "Data you want to pass"); 

//Add the bundle to the intent 
i.putExtras(bundle); 

startActivity(i); 

今、あなたは以下のようにデータを取得し、あなたのSecondActivityクラスで:活動の

Bundle bundle = getIntent().getExtras(); 

//get the data… 
String stuff = bundle.getString(“test”); 
+2

なぜ2つのアクティビティを開始していますか? –

0

あなたに公開されておらず、インテントにプライベートでない内部インテントバンドルを使用しています。アクティビティBでは、代わりに自分が提供したバンドルを探すように求めています。

ここにあなたの活動に

Intent intent = new Intent(context, YourActivity.class); 
    Bundle bundle = new Bundle(); 
    bundle.putParcelable("EXTRA1", "string data"); 
    intent.putExtra(TEST_KEY, bundle); 
    startIntent(intent); 

をこのような何かを試してみては(答えを参照)、件名に良い過去記事ですAdvantages of using Bundle instead of direct Intent putExtra() in Android

0

次の2つの活動を接続するために、2つのインテントを定義する必要がいけません。入れのonClickメソッド内で、次の

Intent i = new Intent(Question12Activity.this, HighRiskActivity.class); 
i.putExtra(TEST_KEY, "SOME STRINGSSS"); 
startActivity(i); 
1

活動は、あなたがしたい場合、私はあなたが

Intent myIntent = new Intent(v.getContext(), Question13Activity.class); startActivity(myIntent);

の下に文の最初の活動を開始することで達成しようとしている正確に何を知っているがありません開始番号がHighRiskActivityの場合は、次のように問題を修正する必要があります。

  1. 質問13の動作に関する説明文を削除してください。
  2. と以下のように実際のHighRiskActivityを開始するための呼び出しを追加:

Intent i = new Intent(Question12Activity.this, HighRiskActivity.class); i.putExtra(TEST_KEY, "SOME STRINGSSS"); startActivity(i); // この行は、新たな活動を開始することが重要です。

ここで重要なのは、startActivity(i);コールでアクティビティを開始しなかったことです。

+0

質問アクティビティを続けることができますが、テキストを生成してHighRiskActivityに格納することができます。 –

+0

私はそれをまだしていない、誰かが上に与えた解決策はHighRiskActivityを開始した。それは私にテキストを与えても望んでいないものだが、質問で続行しない。 –

+0

@AaronAllen: HighRiskActivityを開始したくないということを説明するために質問を編集してください。これは誰もが混乱しているからです。 HighRiskActivityのインテントを作成しました。このインテントはHighRiskActivityの起動にのみ使用されます。 HighRiskActivityでコードを起動しないで実行したいと説明します。 – LarsH

関連する問題