我创建了一个Button,我想在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"
android:layout_alignLeft="@+id/button"
android:layout_alignStart="@+id/button"
android:layout_marginTop="63dp" />
然后我转到Java代码来制作方法&#34; maysara&#34;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void maysara(View v){
**if(v.getId()==findViewById(R.id.button2))**
Toast.makeText(this,"button2",Toast.LENGTH_SHORT).show();}}
但我在if语句&gt;&gt;&gt;中收到错误我真的不知道为什么@?!
答案 0 :(得分:0)
就像这样使用
public void maysara(View v){
Toast.makeText(this,"button2",Toast.LENGTH_SHORT).show();
}
它可以帮到你。
答案 1 :(得分:0)
检查作为视图的findViewById()的返回类型,并与v.getId()进行比较,即id。你不应该比较这个。
public View findViewById(int id)
答案 2 :(得分:0)
我知道这有答案,但我想我会加一个。
你宣布
SetCurrentConsoleFontEx()
作为此按钮的xml中的onClick方法。 没有必要检查哪个按钮正在单击,因为您已在xml中明确定义了该按钮。
因此,在android:onClick="maysara"
方法中,您只需要显示您想要执行的操作,而不是检查按钮点击。
mayasara
switch语句是一个更好的选择,因为您不需要像在if语句中那样检查public void maysara(View v){
<Button
android:id="@+id/button1"
android:onClick="maysara"
<Button
android:id="@+id/button2"
android:onClick="maysara"
的值。检查这类函数的值是一种笨拙的编程方式。
R.id.button2