在mainActivity类中未检测到自定义布局?

时间:2014-12-27 09:15:37

标签: java android android-layout android-studio

我是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);

但是活动类没有检测到这个自定义布局,并在构建时显示以下错误。

enter image description here

3 个答案:

答案 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 SDK定义的资源

在您的代码中,您使用自己的布局,因此将android.R.layout替换为R.layout

答案 2 :(得分:2)

应该是:

ListAdapter theAdapter = new ArrayAdapter<String>(this, R.layout.row_layout,toDoList);

android.R指的是在android sdk中预先构建的那些资源。

由于您已为自定义列表视图定义了自己的布局,因此应使用项目中生成的R文件。