按钮功能中的空指针异常

时间:2013-11-02 23:05:35

标签: java android xml

Button btnEditor;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    btnEditor = (Button) findViewById(R.id.btnEditor);

    //some code

    btnEditor.setOnClickListener(new View.OnClickListener(){
        public void onClick(View arg0) {

        }
    });
}

btnEditor.setOnClickListener(new View.OnClickListener()给了我一个空指针异常。 btnEditor是XML Button的早期连接者: btnEditor = (Button) findViewById(R.id.btnEditor);

在我的main.xml文件中:

<Button
        android:id="@+id/btnEditor"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginTop="16dp"
        android:text="Editor"
        android:textSize="48dp"
        android:textStyle="bold"
        android:typeface="normal" android:layout_gravity="bottom"/>

说真的,我不知道该怎么做......

分辨

我忘记了我有两个main.xml个文件:

  • / RES /布局
  • / RES /布局大

其中一个(在大型目录中)内部没有包含Button,因此在使用大型布局在设备上运行应用程序时出现错误。

3 个答案:

答案 0 :(得分:1)

您很可能没有使用此setContentView()所在的layout来调用Button,或者您之前没有调用setContentView() >这一行

btnEditor = (Button) findViewById(R.id.btnEditor);

这些情况中的任何一种都会在该行给出NPE并且是唯一的原因。如果你认为你那么请发布你如何做到这一点。

答案 1 :(得分:0)

尝试下一步:

  1. btn.setOnclickListener(本);
  2. 您的班级名称实施了OnclickListener
  3. 添加方法OnClick
  4. @覆盖 public void onClick(查看v){     switch(v.getId()){         案例R.id.R.id.btnEditor:  你的代码  打破;  }}

答案 2 :(得分:0)

将其写为全局变量

Button btnEditor ;

在你的on create()中写

btnEditor = (Button) findViewById(R.id.btnEditor);
btnEditor.setOnClickListener(new View.OnClickListener(){
        public void onClick(View arg0) {

        }
    });