2012-02-13 16 views
0

ボタンのonCLickイベントが機能しない理由を理解するのに役立つ必要があります。私はのonCreateでそれを設定していないが、それは動作していないようです。私もトーストコールを出したAndroid - ボタンが点滅しない

public class MainActivity extends Activity implements OnClickListener { 
/** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState);   
     setContentView(R.layout.main); 

     //Setup Refresh button listener. 
     Button btn = (Button) findViewById(R.id.btnRefresh); 
     btn.setOnClickListener(btnRefreshClick);  
    } 

    private OnClickListener btnRefreshClick = new OnClickListener(){ 
     @Override 
     public void onClick(View v){ 
      Toast.makeText(getApplicationContext(), "Get Data from Server", Toast.LENGTH_LONG).show(); 
     } 
    }; 
} 

とLogCatに書き込みをしようとしたが、私はLog.eステートメントにブレークポイントを置くとき、それは決してそこに着きます。

+1

'' OnClickListener'を実装してみてください。 – eightx2

答えて

2

あなたのコードは有効であり、動作します。 onClickメソッドを直接アクティビティにオーバーライドしない場合は、implements OnClickListenerを削除してください。

ここに問題があるように見えるので、あなたの質問に.xmlを追加してください。

+0

ありがとう、OnClickListenerを削除した後、私はまだ問題が発生しましたが、理由はわかりました。私は、OnClickListenerイベントを設定する前に別のレイアウトにsetContextを使用していました。本当にありがとう! – Robert

2

本当に右ボタンを押していますか?リソースID /レイアウトが正しいと確信していますか?

0

onCreate()メソッド内にOnClickListenerを指定しています...これは正しくありません。あなたのアクティビティがOnClickListenerを実装している場合、派生したonClick()メソッドが存在するはずです。

用途:

btn.setOnClickListener(this); 

代わりに、あなたのonCreateとは別のonClick()メソッドからトーストをポップアップ()。

そうしないと、あなたの代わりにこれを試すことができます。

btn.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v){ 
     Toast.makeText(getApplicationContext(), "Get Data from Server", Toast.LENGTH_LONG).show(); 
    } 
}); 

を技術的には、あなたがが働くので、あなたは右のボタンをクリックしていることを確認してください、あなたがのためにあなたのレイアウトXMLでonClickを持っていないことをすべきですボタン。

関連する問題