按钮不响应onClick事件

时间:2013-06-10 20:46:53

标签: android button onclick onclicklistener buttonclick

大家好,我一直在搜索这个,但我找不到一个对我来说有用的答案。在我的布局中我有一个列表视图和列表之外,更具体的上面我有一个imageview一个editText作为一个搜索和一个自定义按钮!问题是,当我按下按钮不会启动我放入的活动是意图。为什么会发生这种情况?我找不到错误,到目前为止我从未遇到过按钮事件的问题。 这是我的xml:          

<LinearLayout
    android:id="@+id/linearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@+id/imageView1"
    android:orientation="vertical" >

    <ListView
        android:id="@+id/list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:clickable="false"
        android:layout_below="@+id/autoCompleteTextView1" >
    </ListView>
</LinearLayout>

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:text="LIST OF PATIENTS"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textColor="#33B5E5" />

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="90dp"
    android:layout_height="85dp"
    android:layout_alignLeft="@+id/linearLayout1"
    android:layout_below="@+id/textView1"
    android:padding="2dp"
    android:src="@drawable/search_user" />

<LinearLayout
    android:id="@+id/linear"
    android:layout_width="60dp"
    android:layout_height="60dp"
    android:layout_alignBottom="@+id/autoCompleteTextView1"
    android:layout_alignParentRight="true"
    android:orientation="vertical" >

    <Button
    android:id="@+id/add"
    android:layout_width="60dp"
    android:layout_height="60dp"
    android:layout_above="@+id/linearLayout1"
    android:layout_alignParentRight="true"
    android:background="@drawable/buttonadd"
    android:onClick="button_click"
    android:src="@drawable/add" />
</LinearLayout>

<AutoCompleteTextView
    android:id="@+id/autoCompleteTextView1"
    android:layout_width="280dp"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/imageView1"
    android:layout_toLeftOf="@+id/linear"
    android:ems="10"
    android:hint="Search patient" />

按钮是自动完成旁边的顶部右侧。在.java文档中,我对这个代码有正确的关注按钮: 在onCreate

addp=(Button) findViewById(R.id.add);
addp.setOnClickListener(this);

on onClick

case R.id.add:
    Intent add= new Intent(sqlviewpatients.this,afprognosis.class);             
    startActivity(add);
    break;

我一直对别人按钮做同样的事情,他们只工作这个没有响应onClick事件。请告诉我我做错了什么? 提前谢谢

3 个答案:

答案 0 :(得分:0)

这是因为您的ID不匹配:

addp=(Button) findViewById(R.id.add);

<Button
android:id="@+id/addpatient"

将java更改为:

addp=(Button) findViewById(R.id.addpatient);

编辑:如果要在XML中定义onClick,则不需要在java代码中设置onClickListener。只需制作代码:

Intent add= new Intent(sqlviewpatients.this,afprognosis.class);             
startActivity(add);

在名为button_click的方法中。

答案 1 :(得分:0)

代码更新后编辑

好的,在阅读刚发布的代码后:sqlviewpatients

  • customwindow3的样子是什么?它是继承自ListActivity还是什么?
  • 此类仅实现onClickListener,因此一堆代码将无法执行,包括onCreate,除非customwindow3

<强>原始

1)你的按钮的id是addpatient而不是add,如果你切换语句,这是子句

2)你有没有考虑这样做:

 public void button_click(View v)
 {
   Intent .....
 }

另外,从你发布的代码片段开始:

addp=(Button) findViewById(R.id.add);
addp.setOnClickListener(this);

实际上不应该运行(你会得到一个空指针异常),因为没有带有该id的元素(当然除非你已经在其他地方定义并且没有向我们展示)。

答案 2 :(得分:0)

首先感谢大家的答案和时间!我很感激

其次我发现了错误的位置。 onClick方法应该有一个@overide