0

最近アンドロイド開発(Androidスタジオ)を学び始め、本当に楽しんでいます。私はこれを自分で解決しようとしましたが、私はいくつかの助けを求めなければなりません。i.putExtraを使用して文字列をサブアクティビティに送信し、テキストビューで表示

私はこのチュートリアルに取り組んでいます:http://www.vogella.com/tutorials/AndroidIntent/article.html#exercise-starting-activities

私は物事がステップ6.6または6.7で間違って行くと思います。

私が主な活動とサブアクティビティを持っており、私の問題は、私はサブアクティビティに送信i.putExtraデータは、IDとのTextViewに表示されていないということである。ここではdisplayintentextra

は私のコードです:

主な活動:

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 

    public void onClick(View view) { 
     EditText text = (EditText) findViewById(R.id.inputforintent); 

     String value = text.getText().toString(); 

     Intent i = new Intent(this, ResultActivity.class); 
     startActivity(i); 
     i.putExtra("Value1", "Check it"); 

    } 
} 

サブアクティビティ:

public class ResultActivity extends Activity { 

    @Override 
    public void onCreate(Bundle bundle) { 
     super.onCreate(bundle); 
     setContentView(R.layout.activity_result); 

     Bundle extras = getIntent().getExtras(); 
     if (extras == null) { 
      return; 
     } 

     String value1 = extras.getString("Value1"); 
     if (value1 != null) { 

      TextView displayintentextra = (TextView) findViewById(R.id.displayintentextra); 
      displayintentextra.setText("Value1"); } 

    } 
} 

サブ活動のTextView:

<TextView 
     android:id="@+id/displayintentextra" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     /> 

注:私はTextViewには、「値1」を表示するか、またはこのコードが固定されている場合、「それを確認してください」、「それを確認してください」と表示することになっているかどうかはわかりません。今は、アプリケーションを実行するとTextViewが空になります。

ご協力いただき誠にありがとうございます。事前に

おかげで、MainActivityで アレックス

+1

use displayintentextra.setText(Value1); – Sathish

答えて

1

、ラインstartActivity(i);i.putExtra("Value1", "Check it");を置きます。

Intent i = new Intent(this, ResultActivity.class); 
i.putExtra("Value1", "Check it"); 
startActivity(i); 

そしてResultActivityで、displayintentextra.setText(value1);とラインdisplayintentextra.setText("Value1");を交換してください。

if (value1 != null) { 

      TextView displayintentextra = (TextView) findViewById(R.id.displayintentextra); 
      displayintentextra.setText(value1); } 
+0

ありがとう、JP、それは動作します! – Alex

1

は、startActivityメソッドの前にi.putExtra()を置きます。それは余分な文字列を設定する前に呼ばれているので現在のところバンドルエキストラがResultActivityに渡されません。.. MainActivityで

Intent i = new Intent(this, ResultActivity.class); 
i.putExtra("Value1", "Check it"); 
startActivity(i); 
+0

ありがとう、sJy!なぜそれがうまくいかなかったのかは分かります。 – Alex

関連する問題