大家好,我一直在搜索这个,但我找不到一个对我来说有用的答案。在我的布局中我有一个列表视图和列表之外,更具体的上面我有一个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事件。请告诉我我做错了什么? 提前谢谢
答案 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