2
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/layout-大

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

4

3 回答 3

1

很可能你没有setContentView()layoutthis打电话Button,或者你没有在这条线setContentView() 之前打电话

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

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

于 2013-11-02T23:08:09.757 回答
0

尝试下一步:

  1. btn.setOnclickListener(this);
  2. 你的类名实现了 OnclickListener
  3. 添加方法 OnClick
  4. @Override public void onClick(View v) { switch (v.getId()) { case R.id.R.id.btnEditor: 你的代码中断;}}
于 2013-11-02T23:09:23.293 回答
0

把它写成全局变量

Button btnEditor ;

在你的 on create() 上写

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

        }
    });
于 2013-11-02T23:12:04.840 回答