0

我是 android 的初学者,我编写了以下简单的程序,它只显示了我在 TextView 上按下的按钮的文本(我总是遇到运行时错误):

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;
    }
}
4

2 回答 2

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 对象。

于 2012-09-26T07:19:18.933 回答
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);

首先初始化这些视图,然后您可以对这些视图应用任何操作,例如单击事件和设置文本。

于 2012-09-26T07:24:27.477 回答