0

大家好,我一直在搜索这个,但我找不到适合我的答案。在我的布局中,我有一个列表视图和列表之外,更具体地说,上面我有一个图像视图和一个编辑文本,它用作搜索和一个自定义按钮!问题是当我按下按钮时不会启动我放入的活动th Intent.为什么会发生这种情况?我找不到错误,到目前为止我从来没有遇到过按钮事件的问题。这是我的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);

在点击

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

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

4

3 回答 3

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

于 2013-06-10T20:48:38.050 回答
0

代码更新后编辑

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

  • 长什么样customwindow3?它是继承自什么的ListActivity还是什么?
  • 这个类只实现onClickListener,所以一堆代码不会被执行,当然包括除非onCreatecustomwindow3

原来的

1)如果您切换语句,您的按钮的 idaddpatient不是add子句

2)您是否考虑过这样做:

公共无效button_click(查看v)
 {
   意图……
 }

此外,从您发布的片段中:

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

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

于 2013-06-10T20:50:22.220 回答
0

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

其次,我找到了错误所在。onClick 方法上面应该有一个@overide

于 2013-06-11T18:24:50.963 回答