-1

我正在开发一个带有自定义 ListView 的简单待办事项列表应用程序。我希望能够更改颜色(例如文本视图上的白色文本而不是黑色),并可能为 ListView 中的每个项目添加一个复选框。

使用默认列表视图时,我需要使用 layout.xml id '@android:id/list',但是,要自定义视图,我使用的是 id '@+id/task_list'。当我这样做时,我收到错误:

"your content must have a listview whose id attribute is 'android.r.id.list'"

我应该怎么办?洞察力将不胜感激。

下面是我正在使用的代码。

MainActivity.java

package com.example.todo;

import java.util.ArrayList;

import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends ListActivity {

ArrayList<TextView> listItems=new ArrayList<TextView>();

ArrayAdapter<TextView> adapter;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    adapter=new ArrayAdapter<TextView>(this,
        R.layout.task_row_item,
        listItems);
    setListAdapter(adapter);
}

public void addItems(View view) {
    EditText newItem = (EditText) findViewById(R.id.textField);
    TextView listItem = (TextView) findViewById(R.id.task_description);
    listItems.add(listItem);
    adapter.notifyDataSetChanged();
    newItem.setText("");
}
}

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:background="@color/black"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <EditText
        android:id="@+id/textField"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:ems="10"
        android:hint="Enter a task..."
        android:inputType="text" >

        <requestFocus />
    </EditText>

    <Button
        android:id="@+id/addItems"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:onClick="addItems"
        android:text="Add" />

</LinearLayout>

    <ListView
    android:id="@+id/task_list"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

</LinearLayout>

task_row_item.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:orientation="horizontal" >

<TextView
    android:id="@+id/task_description"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:layout_weight="1"
    android:textAppearance="?android:attr/textAppearanceMedium" />

</LinearLayout>
4

1 回答 1

1

停止使用ListActivity或更换

<ListView
android:id="@+id/task_list"

<ListView
android:id="@android:id/list"

熟悉:http: //developer.android.com/reference/android/app/ListActivity.html

于 2013-08-29T21:03:53.813 回答