使用inputSearch将搜索功能添加到ListView

时间:2015-09-16 14:14:56

标签: android android-listview

我是编程新手。这是我的列表视图片段,我想         添加搜索以便于查找列表中的任何项目。

当我使用'EditText inputSearch;'时我得到'import com.example.planer.R;'的问题所以我导入了那个,然后我必须使用
'inputSearch =(EditText)findViewById(R.id.inputSearch);'我在R.id.inputSearch上收到错误,我在代码中发布了自动建议。

任何溶剂?

我也为英语知识不足而道歉。

这是我的列表视图类:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.activity_list_view, container, false);
    sveAktivnosti = NavigationDrawerExampleActivity.sveAktivnosti;
    ListViewAdapter arrayAdapter = new ListViewAdapter(sveAktivnosti, getActivity());

    ListView a =  (ListView) view.findViewById(R.id.listView1);
    a.setAdapter(arrayAdapter);
    inputSearch = (EditText) findViewById(R.id.inputSearch);  
    //inputSearch cannot be resolved or is not a field
    //2 quick fixes available
    //Create field 'inputSearch in type 'id'
    //Create constant 'inputSearch in type 'id'
    return view;        
}

public ArrayList<Activity> getSveAktivnosti() {
    return sveAktivnosti;
}

private void setSveAktivnosti(ArrayList<Activity> sveAktivnosti) {
    this.sveAktivnosti = NavigationDrawerExampleActivity.sveAktivnosti;

}

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub

}

4 个答案:

答案 0 :(得分:0)

您正在将布局R.layout.activity_list_view关联(膨胀)到您的视图中。你确定&#34; R.id.listView1&#34;是在那里定义的?请发布您的xml 文件。无论如何,您应该在THAT视图中查找EditText,因此请尝试更改

inputSearch = (EditText) findViewById(R.id.inputSearch);  

要:

EditText inputSearch = (EditText) view.findViewById(R.id.inputSearch);  

所以,你得到&#34; inputSearch无法解决或者不是一个字段&#34;因为你必须声明它(//inputSearch cannot be resolved or is not a field)。无论如何,如果你没有做任何动态的事情(例如,更改文字大小),你可以删除该行,因为.inflate()调用正在插入视图

答案 1 :(得分:0)

这是list_item.xml

<TextView
    android:id="@+id/ListName"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="TextView" />

<TextView
    android:id="@+id/ListDate"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="TextView" />

这是activity_list_view.xml

<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/listView1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

</ListView>

答案 2 :(得分:0)

您正尝试将未知对象+oo链接到ID为inputSearch的EditText,该文件位于inputSearch文件中,位于项目的layout/activity_list_view.xml目录中。

您可以先通过创建EditText对象来解决此问题。

将问题的行更改为:

res/

答案 3 :(得分:0)

看起来您无法在XML中定义EditText inputSearch,因此代码无法找到它。您还需要在XML中定义EditText inputSearch。所以你的activty_list_view.xml看起来应该更像这样。

<?xml version="1.0" encoding="utf-8"?>

<EditText
android:id="@+id/inputSearch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="EditText" />

<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/listView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

</ListView>