初学android,请问这是什么情况。。求指点!
 package com.app.bangwoyi;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;


public class MainActivity extends ActionBarActivity implements OnClickListener{

    private Button bt1,bt2,bt3,bt4;
    private TextView number1,number2,number3,number4;
    private int n1,n2,n3,n4;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        fun1();
    }

    private void fun1() {
        // TODO Auto-generated method stub

        bt1 = (Button) findViewById(R.id.bt1);
//      bt = (Button) findViewById(R.id.bt);        //语音
        bt2 = (Button) findViewById(R.id.bt2);
        bt3 = (Button) findViewById(R.id.bt3);
        bt4 = (Button) findViewById(R.id.bt4);
        bt1.setOnClickListener(this);
//      bt.setOnClickListener(this);
        bt2.setOnClickListener(this);
        bt3.setOnClickListener(this);
        bt4.setOnClickListener(this);
    }

        public void onClick(View v) {
            switch (v.getId()) {
            case R.id.bt1:
                n1++;
                number1.setText(String.valueOf(n1));
                break;

            case R.id.bt2:
                n2++;
                number2.setText(String.valueOf(n2));
                break;

            case R.id.bt3:
                n3++;
                number3.setText(String.valueOf(n3));
                break;

            case R.id.bt4:
                n4++;
                number4.setText(String.valueOf(n4));
                break;
            }
        }

}

图片说明

5个回答

MainActivity.java第45行抛出了空指针异常。

你看看你代码里:

 private TextView number1,number2,number3,number4;

声明之后全都没有赋值,就在switch...case里引用了,这必须得报错啊。

Cashey1991
开水 回复fangxi01: 不是,按@bdmh所说,你得findViewById给他们赋值好。所有用需要用到的控件都要这样赋值。直接声明一个变量,不赋值就直接用都是错误的用法。
大约 5 年之前 回复
fangxi01
[故事有你] 那全部要用赋值null嘛?
大约 5 年之前 回复

都要通过 findViewById先找到,再使用

fangxi01
[故事有你] TextView也要通过findViewById找到呀?
大约 5 年之前 回复

同上解,是要用findViewById赋值
findViewById的意思其实就是找对应布局文件的控件,而这个控件系统已经帮你实例化了,你声明的变量是用来指向这个实例来用的

空指针异常了嘛。。。需要_**findViewById。**_

在layout文件夹里的布局不是有id吗,使用前都要先都要通过 findViewById先找到,再使用

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问