2016-05-10 14 views
0

「Activity A」から作成したStringを「Activity B」に渡して、TextViewに表示できるようにする必要があります。 問題は、コードによってAndroidが応答しなくなり、他のチュートリアルと同じものがオンラインになるということです。Android .putExtra(応答しない)

フィードバックありがとうございます。

活性A.onCreate()

check_button = (Button) findViewById(R.id.check_button); 
    check_button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) 
     { 
      Intent i = new Intent(AddActivity.this, DetailActivity.class); 
      String hash = text_hash.toString(); 
      i.putExtra("hash" , hash); 
      startActivity(i); 
     } 
    }); 

活性B.onCreate()

Bundle extras = getIntent().getExtras(); 
if (extras != null) 
{ 
    passedHash = (String) getIntent().getExtras().getString("hash"); 
    hash.setText(passedHash); 
} 

スタックトレース:

 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference 
+0

はtext_hash textviewですか? –

+0

はい、Questionへの編集を参照してください。 – EightSquared

+0

@SajedulKarimは、String hash = text_hash.getText()。toString()を使用する必要があると述べています。 –

答えて

1

あなたのログによると、あなたがあなたのTextViewにテキストを設定する前にこれを行うアクティビティB.であなたのTextViewを初期化していないようです:

TextView hash = (TextView)findViewById(R.id.hash_textview); 
+0

これは文字どおりに分かりました。 +1 :) – EightSquared

0
text_hash

は場合またはEditTextその後、ActivityB

String hash = text_hash.getText().toString(); 

使用を使用するのonCreate()この使用:あなたのエラー・ログから

String newString; 
if (savedInstanceState != null) { 
    Bundle extras = getIntent().getExtras(); 
    if(extras == null) { 
     newString= null; 
    } else { 
     newString= extras.getString("hash"); 
    } 
} 

EDIT を、あなたはあなたのActivityBでのTextViewを初期化しませんでした。最初にTextViewを初期化してからTextを設定する必要があります。

0

は、[OK]をので、私はX.getTextを使用するために必要な().toString(); スタックトレースを読むことによって、テキストを設定しようとする前にTextViewでViewByIDを見つける必要があると考えました。

読んでいただきありがとうございます。

あなたのTextViewオブジェクトがnullreferencedさ
0

、あなたはそれのTextViewの任意のメソッドを呼び出すために開始する前にOnCreate関数でハッシュ変数を初期化する必要があります...

例:その後

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    TextView hash = (TextView)findViewById(R.id.hash_textview); 

することができますsettextメソッドを呼び出す

hash.setText(passedHash);