2012-09-26 38 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); 

首先初始化这些意见,那么你可以申请对这些观点像单击事件,并设置文本的任何操作。