我是android的初学者。
我正在使用Android Studio 1.0
。我想为custom layout
制作一个listView
。我在res/layout named row_layout
中创建了自定义布局文件。布局的xml是这样的:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/cl_textView"
android:textSize="30sp"
android:textStyle="bold"
android:padding="15dp"/>
</LinearLayout>
在MainActivity类中实现该自定义布局的代码是:
ListAdapter theAdapter = new ArrayAdapter<String>(this, android.R.layout.row_layout,toDoList);
但是活动类没有检测到这个自定义布局,并在构建时显示以下错误。
答案 0 :(得分:3)
您必须将android.R.
替换为R.
因为R.*
提供了您的应用资源,android.R.*
提供了Android SDK附带的资源。
(R.*
实际上是your.package.R.*
)
希望它有所帮助。
答案 1 :(得分:2)
R.layout
表示您的应用程序提供的资源。 R
可以访问由您的应用程序定义的所有变量,资源文件(可绘制,字符串,布局等)。
示例R.layout.*, r.drawable.*, R.id.*, R.color.* etc
但android.R
表示Android SDK的资源。如果您使用android.R
在您的代码中,您使用自己的布局,因此将android.R.layout
替换为R.layout
答案 2 :(得分:2)
应该是:
ListAdapter theAdapter = new ArrayAdapter<String>(this, R.layout.row_layout,toDoList);
android.R
指的是在android sdk中预先构建的那些资源。
由于您已为自定义列表视图定义了自己的布局,因此应使用项目中生成的R文件。