9

刚刚在我已经正常工作的布局中添加了一个新按钮,但 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,并查看我在这里找到的帖子......但仍然找不到问题!有什么想法吗?

4

6 回答 6

19
import yourpackagename.R;

代替 android.R;

导入R你的包

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

于 2012-07-13T09:31:28.663 回答
6

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

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

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

祝你好运

于 2012-07-13T09:38:04.357 回答
4
  1. 在 Eclipse 中清理您的项目。
  2. 确保 id 不重复
  3. 删除按钮,保存并再次添加按钮并构建代码。
  4. 确保导入了正确的 R 文件。

如果它是一个与语法相关的问题,那么它与编译时有关。

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

于 2012-07-13T09:41:30.867 回答
4

确保完成这些过程。

1:确保您导入了您的项目 R 文件。

import packagename.R

2:清理你的项目

在此处输入图像描述

3:如果以上两种解决方案都不起作用,请使您的缓存无效并重新启动 在此处输入图像描述在此处输入图像描述

于 2019-03-26T05:50:16.973 回答
1

在 Android Studio Build->Clean Project为我解决了这个问题。

于 2016-10-29T15:21:56.147 回答
0

同时,仅通过清理您的项目、重建它或手动导入 R 文件,找到指定视图组件的 id 仍然无法被活动找到可能是一件可悲的事情。然后,如果你查看R文件的详细内容,你会发现id没有生成,然后,你需要检查一下,如果你自己的/res文件有问题,例如,名称布局文件、可绘制文件名或菜单文件的变体名称等。所有这些都可能导致 R 文件无法正确生成,甚至更糟糕的是,R 文件根本无法生成。

于 2013-09-13T06:26:14.797 回答