【问题标题】:You must supply a resource ID for a TextView您必须为 TextView 提供资源 ID
【发布时间】:2012-09-08 08:48:27
【问题描述】:

我搜索了与此问题相关的现有教程,并遵循了该示例。但我仍然得到同样的错误。当我更改 android.R.layout.simple_list_item1 行时,它不起作用。

我的代码:

public class Lisearch extends Activity {
    private ListView lv;
    private EditText et;
    private String listview_array[] = { "ONE", "TWO", "THREE", "FOUR", "FIVE",
    "SIX", "SEVEN", "EIGHT", "NINE", "TEN" };
    private ArrayList<String> array_sort= new ArrayList<String>();
    int textlength=0;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_lisearch);
        //TextView tv=(TextView)findViewById(R.id.text);
        lv = (ListView) findViewById(R.id.ListView01);
        et = (EditText) findViewById(R.id.EditText01);
        //lv.setAdapter(new ArrayAdapter<String>(this,
        //R.layout.activity_lisearch, listview_array));

        et.addTextChangedListener(new TextWatcher()
        {
        public void afterTextChanged(Editable s)
        {
                                                                        // Abstract Method of TextWatcher Interface.
        }
        public void beforeTextChanged(CharSequence s,
        int start, int count, int after)
        {
        // Abstract Method of TextWatcher Interface.
        }
        public void onTextChanged(CharSequence s,
        int start, int before, int count)
        {
        textlength = et.getText().length();
        array_sort.clear();
        for (int i = 0; i < listview_array.length; i++)
        {
        if (textlength <= listview_array[i].length())
        {
        if(et.getText().toString().equalsIgnoreCase(
        (String)
        listview_array[i].subSequence(0,
        textlength)))
        {
                                                                                                                        array_sort.add(listview_array[i]);
                                                                                                        }
                                                                                        }
                                                                        }
        lv.setAdapter(new ArrayAdapter<String>
        (Lisearch.this,
        R.layout.activity_lisearch,R.id.text, array_sort));
        }
        });

    }

Xml 文件:

<?xml version="1.0" encoding="utf-8"?>
    <TextView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/text"
        android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<EditText android:id="@+id/EditText01"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:hint="Search">
</EditText>

<ListView android:id="@+id/ListView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</ListView>
</TextView>

【问题讨论】:

  • 发布错误消息和列表视图项的布局

标签: android android-listview android-arrayadapter


【解决方案1】:

试试这个。使用 android.R.layout_simple_list_item_1 显示默认 listview 。

lv.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,array_sort));

设置自定义布局

lv.setAdapter(new ArrayAdapter<String>(this,R.layout.conversation_item,R.id.sometextview_from_the_layout,array_sort));

这里

R.layout.conversation_item 是自定义布局,R.id.sometextview_from_the_layout 是来自自定义布局的文本视图 ID。

conversation_item.xml 文件

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/text1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:gravity="center_vertical"
    android:paddingLeft="6dip"
    android:minHeight="?android:attr/listPreferredItemHeight"
/>

【讨论】:

  • 上面的代码可以工作。但我想设置自己的自定义主题。当我设置 R.layout.xmlfilename ..它不会工作。为什么?
  • @karthi 当您必须使用自定义布局时,您需要传递自定义布局 textview id。
  • @karthi 您必须创建另一个仅包含 textview 的布局文件。
  • @karthi 检查我添加了布局文件。让我知道它是否有效?
猜你喜欢
  • 2012-11-26
  • 2011-08-20
  • 1970-01-01
  • 2016-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多