在拖放设计以创建列表视图时,在我的xml中创建的唯一代码是:
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
未创建android:id="@id/example"/
。我需要为我的Fragment类调用它
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_details, container, false);
String[] menuItems={"Example1","Example2","Example3"};
ListView listView = (ListView)view.findViewById(R.id.example);
return view;
}
我无法调用ListView,因为android studio不允许我为其创建ID。在无法解析符号'@ id / example',验证Android XML文件中的资源引用时,我遇到以下错误:
我想念什么?
答案 0 :(得分:1)
任何View对象都可能具有与其关联的整数ID,以便唯一 在树中识别视图。编译应用后,此ID 以整数表示,但ID通常是在 在id属性中以字符串形式布局XML文件。这是一个XML 所有View对象(由View类定义)共有的属性,以及 您将经常使用它。 XML标记内的ID的语法 是:
android:id="@+id/example"
字符串开头的符号(@)表示 XML解析器应解析并扩展ID字符串的其余部分, 将其标识为ID资源。加号(+)表示这是 必须创建一个新的资源名称并将其添加到我们的资源中 (在R.java文件中)。还有许多其他ID资源 由Android框架提供。引用Android时 资源ID,您不需要加号,但必须添加android 包名称空间,如下所示:
android:id="@android:id/example"
在安装了android包命名空间之后,我们现在引用一个 来自android.R资源类的ID,而不是本地资源 课。
答案 1 :(得分:0)
如果是新ID,则需要向其中添加+
:
android:id="@+id/text"
请参阅Android文档:https://developer.android.com/guide/topics/ui/declaring-layout#write