你必须提供一个资源ID为一个TextView [英] You must supply a resource ID for a TextView

查看:283
本文介绍了你必须提供一个资源ID为一个TextView的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我搜索有关这个问题的现有的教程,我跟着那个例子。不过还是即时得到同样的错误。当我改变android.R.layout.simple_list_item1线将无法正常工作。

我的code:

 公共类Lisearch延伸活动{
    私人的ListView LV;
    私人的EditText等;
    私人字符串listview_array [] = {一,二,三,四有,五,
    六个一,七,八,九,十};
    私人的ArrayList<串GT; array_sort =新的ArrayList<串GT;();
    INT长度限制:Textlength = 0;    @覆盖
    公共无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_lisearch);
        // TextView的电视=(的TextView)findViewById(R.id.text);
        LV =(ListView控件)findViewById(R.id.ListView01);
        等=(EditText上)findViewById(R.id.EditText01);
        //lv.setAdapter(new ArrayAdapter<串GT;(这一点,
        //R.layout.activity_lisearch,listview_array));        et.addTextChangedListener(新TextWatcher()
        {
        公共无效afterTextChanged(编辑S)
        {
                                                                        // TextWatcher接口的抽象方法。
        }
        公共无效beforeTextChanged(CharSequence中,
        INT开始,诠释计数后INT)
        {
        // TextWatcher接口的抽象方法。
        }
        公共无效onTextChanged(CharSequence中,
        INT开始,诠释之前,诠释计数)
        {
        。=长度限制:Textlength et.getText()长();
        array_sort.clear();
        的for(int i = 0; I< listview_array.length;我++)
        {
        如果(与长度限制:Textlength LT = listview_array [I]。长度())
        {
        如果(et.getText()。的toString()。equalsIgnoreCase(
        (串)
        listview_array [I] .subSequence(0,
        长度限制:Textlength)))
        {
                                                                                                                        (listview_array [I])array_sort.add;
                                                                                                        }
                                                                                        }
                                                                        }
        lv.setAdapter(新ArrayAdapter<串GT;
        (Lisearch.this,
        R.layout.activity_lisearch,R.id.text,array_sort));
        }
        });    }

XML文件:

 <?XML版本=1.0编码=UTF-8&GT?;
    < TextView中的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
        机器人:ID =@ + ID /文
        机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT>
< EditText上机器人:ID =@ + ID / EditText01
机器人:layout_height =WRAP_CONTENT
机器人:layout_width =FILL_PARENT
机器人:提示=搜索>
< /&的EditText GT;< ListView的机器人:ID =@ + ID / ListView01
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT>
< /&的ListView GT;
< / TextView的>


解决方案

试试这个。使用android.R.layout_simple_list_item_1显示默认列表视图。

  lv.setAdapter(新ArrayAdapter<串GT;(这一点,android.R.layout.simple_list_item_1,array_sort));

设置自定义布局

  lv.setAdapter(新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 是自定义布局TextView的ID。

conversation_item.xml文件

 &LT;?XML版本=1.0编码=UTF-8&GT?;
&LT; TextView中的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    机器人:ID =@ + ID / text1中
    机器人:layout_width =FILL_PARENT
    机器人:layout_height =WRAP_CONTENT
    机器人:textAppearance =机器人:ATTR / textAppearanceLarge
    机器人:重力=center_vertical
    机器人:paddingLeft =6DIP
    安卓了minHeight =机器人:ATTR /列表preferredItemHeight
/&GT;

I searched existing tutorials related this question, And i followed that example. But still im getting same error. When i change the android.R.layout.simple_list_item1 line it won't work.

MyCode:

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 file:

<?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>

解决方案

Try this. Using android.R.layout_simple_list_item_1 shows default listview .

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

Set Custom Layout

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

Here

R.layout.conversation_item is the custom layout and R.id.sometextview_from_the_layout is textview id from custom layout.

conversation_item.xml file

<?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"
/>

这篇关于你必须提供一个资源ID为一个TextView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆