为什么在使用if的if比较时会收到错误声明

时间:2015-11-28 08:48:37

标签: java android

我创建了一个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;中收到错误我真的不知道为什么@?!

3 个答案:

答案 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