FindViewById()找不到View

时间:2012-07-13 09:29:54

标签: android android-layout

刚刚为我已经工作正常的布局添加了一个新按钮,但findViewById函数似乎对我无法理解的内容感到愤怒。

这里有一些布局:

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

这里有一些编码:

@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了,看看我在这里发现的帖子......但仍然没有找到问题!有什么想法吗?

6 个答案:

答案 0 :(得分:17)

import yourpackagename.R;

而不是android.R;

导入包裹的R

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

答案 1 :(得分:6)

有时文件R不会被重新生成。试试:

  • 清理项目
  • 重建
  • 管理以返回编译并重试逐个添加元素的版本并每次编译以检查R文件
  • 最后一个选项是关闭/重新开启eclipse是的,其他方式无法克服一些错误^^“

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

祝你好运

答案 2 :(得分:3)

  1. 在Eclipse中清理项目。
  2. 确保ID不重复
  3. 删除按钮,再次保存并添加按钮并构建代码。
  4. 确保导入正确的R文件。
  5. 如果它是一个与语法相关的问题,那么它与编译时间有关。

    如果代码执行时出现问题,请确保布局膨胀。如果找到了列表视图,那么也一定要找到该按钮。

答案 3 :(得分:0)

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

答案 4 :(得分:0)

在Android Studio中Build - &gt; Clean Project为我解决了这个问题。

答案 5 :(得分:0)

确保完成这些过程。

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

import packagename.R

2:清理项目

enter image description here

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