Java 为什么在使用ID的if比较时会出现错误语句
我制作了一个按钮,我想在XML中制作onClick方法Java 为什么在使用ID的if比较时会出现错误语句,java,android,Java,Android,我制作了一个按钮,我想在XML中制作onClick方法 <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" android:id="@+id/button2" android:onClick="maysara" android:layout_alignParentTop="true"
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
android:id="@+id/button2"
android:onClick="maysara"
android:layout_alignParentTop="true"
android:layout_alignLeft="@+id/button"
android:layout_alignStart="@+id/button"
android:layout_marginTop="63dp" />
但是我在if语句中出错了我真的不知道为什么 就这样用吧
public void maysara(View v){
Toast.makeText(this,"button2",Toast.LENGTH_SHORT).show();
}
它可以帮助您。检查作为视图的findViewById()的返回类型,您正在与作为id的v.getId()进行比较。您不应该对此进行比较 公共视图findViewById(内部id)
我知道这有一个答案,但我想我应该补充一个 你在申报
android:onClick="maysara"
作为此按钮的xml中的onClick方法。
无需检查哪个按钮正在单击,因为您已经在xml中明确定义了这一点
因此,在你的mayasara
方法中,你只需要显示你想要做的事情,而不是点击按钮
public void maysara(View v){
<Button
android:id="@+id/button1"
android:onClick="maysara"
<Button
android:id="@+id/button2"
android:onClick="maysara"
为什么设置
if(v.getId()==findViewById(R.id.button2))
v.getId()==R.id.button2
基于主要观点的问题findViewById(id)
返回视图v.getId()
返回一个ID,而不是视图。你不需要找到id的视图。你只需比较id,我感到非常高兴,因为我的问题现在有-3个评论它是-4:)::)哈哈
public void maysara(View v){
<Button
android:id="@+id/button1"
android:onClick="maysara"
<Button
android:id="@+id/button2"
android:onClick="maysara"
public void maysara(View v){
switch(v.getId()) {
case R.id.button1:
// to do
break;
case R.id.button2:
// to do
break;