无法从View转换为Button

时间:2012-05-25 12:02:42

标签: android

我在这里遇到非常令人沮丧的问题。我有这段代码:

Button b = findViewById(android.R.id.button1);

我收到了这个错误:

  

类型不匹配:无法将表单视图转换为按钮

但是button1 一个按钮!!在我的XML布局文档中,按钮已声明如下:

<Button
   android:id = "@+id/button1"
   android:layout_width = "wrap_content"
   android:layout_height = "wrap_content"
   android:text = "Next Activity" 
/>

在我的R.java中:

public static final class id {
   public static final int button1=0x7f050000;
}

为什么我得到并且错误地说我的按钮是一个视图,当它实际上确实是一个按钮...是一个谜。

3 个答案:

答案 0 :(得分:1)

删除android.R from packages并导入R

import com.companyname.productname.R;

并更改按钮参考

Button b = (Button)findViewById(R.id.button1);
                                ^^^^^^^^^^^^

答案 1 :(得分:1)

您需要将视图转换为Button:

Button b = (Button) findViewById(android.R.id.button1);

http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html

的更多详情

另外,正如其他人所回答的那样,id是错误的。

答案 2 :(得分:0)

你的错误在这里 - 按钮b = findViewById(android.R.id.button1);

用findViewById(R.id.button1)替换上面的行;