关于android:FindViewById()找不到视图

FindViewById() not finding View

刚刚在我已经可以正常工作的布局中添加了一个新按钮,但是findViewById函数似乎对我不了解的内容感到恼火。

这里是一些布局:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<LinearLayout
        ...
    >
    <ListView
        android:id="@+id/my_lovely_list"
        android:layout_width="fill_parent"
        android:layout_weight="1"
        />

    <Button
        android:id="@+id/my_lovely_butt"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/exit_b"
        android:layout_weight="0"
        android:clickable="true"
        />

</LinearLayout>

这是一些代码:

1
2
3
4
5
6
7
8
9
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    ...
    list_o = (ListView)findViewById(R.id.my_lovely_list);
    butt_o = (Button)findViewById(R.id.my_lovely_butt);
    ...
}

因此,最大的麻烦就是找到ListView不会有任何问题,但是Button绝不会有任何问题。 我已经尝试清洁Proyect,并浏览我在这里找到的帖子...但是仍然找不到问题! 有什么想法吗?


1
import yourpackagename.R;

代替android.R;

导入包的R

同样,您的项目Clean将刷新整个项目,然后您还将找到按钮的ID


有时文件R无法重新生成。尝试:

  • 清理您的项目
  • 重建它
  • 设法回到已编译的版本,然后尝试一次添加元素,并每次编译以检查R文件
  • 最后,最后一个选择是关闭/重新打开蚀,是的,有些错误无法通过其他方式克服。^^"

不用担心,这只是一些经常发生的常见eclipse / android错误(其他时候,它也可能是项目中某个地方的小语法错误,但我假设您已经检查过x)

祝好运


  • 在Eclipse中清理您的项目。
  • 确保ID不重复
  • 删除按钮,保存并再次添加按钮并构建代码。
  • 确保导入了正确的R文件。
  • 如果是语法相关的问题,则与编译时的东西有关。

    如果在执行代码时出现问题,请确保布局已膨胀。如果找到了列表视图,则还必须找到该按钮。


    确保完成这些过程。

    1:确保已导入项目R文件。

    1
    import packagename.R

    2:清理您的项目

    enter image description here

    3:如果以上两种解决方案均无效,请使缓存无效并重新启动
    enter image description here enter image description here


    在Android Studio中,Build-> Clean Project为我解决了该问题。


    而仅通过清理项目,重建或手动导入R文件,找到活动仍然无法找到指定视图组件ID可能是一件令人遗憾的事情。
    然后,如果您检查R文件的详细内容,您会发现ID尚未
    生成,然后检查您自己的/ res是否有问题
    文件,例如,布局文件的名称,可绘制文件的名称或菜单文件.etc的变体名称。
    所有这些都可能使R文件无法正确生成,甚至更糟的是,R文件
    根本不产生。