2012-02-07 5 views
0

私は場所全体を見渡し、ヒントをすべて取り上げましたが、アプリは強制終了します。 アプリには2つのクラス(メインとネクスト)があり、「次へ」クラスにはgetメソッドがあります。私が "Main"クラスのgetメソッドを使用しようとすると、アプリケーションが強制終了します。Android getterメソッドのテキストを別のクラスに設定する

timesHit_txtview.setText(next.getTimesHit()); 

私は前に述べたように、私は日食にすべてのエラーを得ることはありません:これは問題の原因となるコードの行です。私がlog catから取得した最初のエラーは、「キャッチされていないハンドラ:キャッチされていない例外のためにスレッドのメインが終了しています」

提案がありますか?事前に感謝

EDIT:あなたはonCreate()呼び出しが完了する前に、ウィジェットを初期化しようとしている

package com.whatever.main; 
import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 

public class MainActivity extends Activity { 
Next next = new Next(); 
TextView timesHit_txtview = (TextView) findViewById(R.id.textView2); 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    timesHit_txtview.setText(5); 


    Button next_btn = (Button) findViewById(R.id.button1); 
    next_btn.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      Intent nextscreen_intent = new Intent(view.getContext(), Next.class); 
      startActivityForResult(nextscreen_intent, 0); 
     } 

    }); 

} 

} 
+1

ログメッセージを送信します。それは問題の理解に役立ちます。ここで私の推測は、次にNullpointerexceptionを投げているnullです。 – kosa

+0

あなたが話しているエラーは、この行で正確に起こりますか? ステップバイステップデバッグを試しましたか? –

+0

うーん...ちょうど何かに気づいた。コードを次のように置き換えても: 'timesHit_txtview.setText( "5");' アプリが強制終了します。 「メイン」全体を投稿する必要がありますか? – EGHDK

答えて

2

あなたがそれにsetTextを呼び出す前にそうように、onCreate()方法であなたのTextViewを初期化します。あなたがあなたの活動になり、それのテキストを、設定しようとすると、あなたの現在のコードで

public class MainActivity extends Activity { 
Next next; 
TextView timesHit_txtview; 

@Override 
public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    next = new Next(); // Initialize Next 

    timesHit_txtview = (TextView) findViewById(R.id.textView2); // Initialize Widget 
    timesHit_txtview.setText(5); 


    Button next_btn = (Button) findViewById(R.id.button1); 
    next_btn.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      Intent nextscreen_intent = new Intent(view.getContext(), Next.class); 
      startActivityForResult(nextscreen_intent, 0); 
     } 

    }); 

} 

、timesHit_txtviewがnullの場合クラッシュ。

+0

素晴らしい!それはそれを修正した。説明ありがとう。 – EGHDK

+0

うれしい私は助けることができました! OnClickListenerをXMLファイルに設定することができます。単にアンドロイド:onClick = "handleClick"を使用し、名前が一致するメソッドを作成するだけです: 'public void handleClick(View view){}' –

+0

ありがとう。あなたは私がまだ初心者だと言うことができます。私はあなたの時間を感謝します。 – EGHDK