2012-09-26 55 views
0

設置OnClickListener當我在Android的初學者,我寫了下面簡單的程序,只是顯示的按鈕,我按一個TextView的文本(我總是得到一個運行時錯誤):錯誤的Android

package com.hmz.secondapp; 

import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 

public class AppPageActivity extends Activity { 

    Button btnPlus; 
    Button btnMinus; 
    Button btnMul; 
    Button btnDiv; 

    TextView resultTextView; 

    View.OnClickListener operations = new View.OnClickListener() { 
     public void onClick(View v) { 

      Button pressedButton = (Button) v; 

      String buttonLabel = pressedButton.getText().toString(); 

      resultTextView.setText(buttonLabel); 
     } 
    }; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.app_page); 

     btnPlus.setOnClickListener(operations); 
     btnMinus.setOnClickListener(operations); 
     btnMul.setOnClickListener(operations); 
     btnDiv.setOnClickListener(operations); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.app_page, menu); 
     return true; 
    } 
} 
+0

發佈錯誤日誌。 – jeet

回答

3

您的btnPlus對象爲空。你需要初始化它在onCreate方法類似

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.app_page); 

    btnPlus = (Button)findViewById(R.id.YOUR_BUTTON_ID); 
    btnMinus = (Button)findViewById(R.id.YOUR_BUTTON_ID); 
    btnMul = (Button)findViewById(R.id.YOUR_BUTTON_ID); 
    btnDiv = (Button)findViewById(R.id.YOUR_BUTTON_ID); 

    btnPlus.setOnClickListener(operations); 
    btnMinus.setOnClickListener(operations); 
    btnMul.setOnClickListener(operations); 
    btnDiv.setOnClickListener(operations); 
} 

您使用的setText方法之前也實例化resultTextView對象。

+0

現在它的工作..謝謝 –

+0

好。接受答案。 – blessenm

0

你初始化了你的TextView嗎?

TextView resultTextView = findViewById(FIND TEXT VIEW); 
0

從你的代碼的問題是,看來你是不初始化按鈕(btnPlus,btnMinus,btnMul,btnDiv)和TextView的resultTextView。

btnPlus  = (Button)findViewById(Button Id); 
btnMinus  = (Button)findViewById(Button Id); 
btnMul   = (Button)findViewById(Button Id); 
btnDiv   = (Button)findViewById(Button Id); 
resultTextView = (Button)findViewById(TextView Id); 

首先初始化這些意見,那麼你可以申請對這些觀點像單擊事件,並設置文本的任何操作。