Java 我想将searchview添加到我的listview

Java 我想将searchview添加到我的listview,java,android,listview,search,Java,Android,Listview,Search,我想在MainActivity.java中将searchview添加到我的listview中,如何添加 activity_main.xml <RelativeLayout `xmlns:android="http://schemas.android.com/apk/res/android"` xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_he

我想在MainActivity.java中将searchview添加到我的listview中,如何添加

activity_main.xml

<RelativeLayout `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"
android:orientation="horizontal"
tools:context=".MainActivity">

<SearchView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/searchView1"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:queryHint="search"/>

<ListView
android:id="@+id/listview"
android:layout_below="@+id/searchView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</RelativeLayout>

MainActivity.java

public class MainActivity extends ListActivity {
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        // 1. pass context and data to the custom adapter
        MyAdapter adapter = new MyAdapter(this, generateData());
        //2. setListAdapter
        setListAdapter(adapter);
    }
    private ArrayList < Item > generateData() {
        ArrayList < Item > items = new ArrayList < Item > ();
        items.add(new Item("item1", "description1"));
        items.add(new Item("item2", "description2"));
        items.add(new Item("item3", "description3"));
        return items;
    }@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu); //Menu Resource, Menu
        return true;
    }
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.about:
                Intent intent = new Intent(this, about.class);
                startActivity(intent);
                return true;
        }
        return super.onOptionsItemSelected(item);
    }
}
public类MainActivity扩展了ListActivity{
创建公共空间(捆绑冰柱){
超级冰柱;
//1.将上下文和数据传递给自定义适配器
MyAdapter=新的MyAdapter(这个,generateData());
//2.设置列表适配器
setListAdapter(适配器);
}
私有数组列表generateData(){
ArrayListitems=新的ArrayList();
添加(新项目(“项目1”、“说明1”);
项目。添加(新项目(“项目2”、“说明2”);
项目。添加(新项目(“项目3”、“说明3”);
退货项目;
}@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().inflate(R.menu.menu_main,menu);//菜单资源,菜单
返回true;
}
公共布尔值onOptionsItemSelected(菜单项项){
开关(item.getItemId()){
案例R.id.关于:
Intent Intent=新Intent(这个,about.class);
星触觉(意向);
返回true;
}
返回super.onOptionsItemSelected(项目);
}
}

使用列表视图和搜索视图创建XML布局,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    <SearchView
            android:id="@+id/search_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
    <ListView
            android:id="@+id/list_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"/>

</LinearLayout>

将以下Java类创建为SearchViewFilterMode.Java

import android.app.Activity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.Window;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SearchView;

/**
 * Shows a list that can be filtered in-place with a SearchView in non-iconified mode.
 */
public class SearchViewFilterMode extends Activity implements SearchView.OnQueryTextListener {

    private SearchView mSearchView;
    private ListView mListView;

    private final String[] mStrings = Cheeses.sCheeseStrings;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().requestFeature(Window.FEATURE_ACTION_BAR);

        setContentView(R.layout.searchview_filter);

        mSearchView = (SearchView) findViewById(R.id.search_view);
        mListView = (ListView) findViewById(R.id.list_view);
        mListView.setAdapter(new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1,
                mStrings));
        mListView.setTextFilterEnabled(true);
        setupSearchView();
    }

    private void setupSearchView() {
        mSearchView.setIconifiedByDefault(false);
        mSearchView.setOnQueryTextListener(this);
        mSearchView.setSubmitButtonEnabled(true); 
        mSearchView.setQueryHint("Search Here");
    }

    public boolean onQueryTextChange(String newText) {
        if (TextUtils.isEmpty(newText)) {
            mListView.clearTextFilter();
        } else {
            mListView.setFilterText(newText.toString());
        }
        return true;
    }

    public boolean onQueryTextSubmit(String query) {
        return false;
    }
}
导入android.app.Activity;
导入android.os.Bundle;
导入android.text.TextUtils;
导入android.view.Window;
导入android.widget.ArrayAdapter;
导入android.widget.ListView;
导入android.widget.SearchView;
/**
*显示可以在非图标化模式下使用SearchView就地筛选的列表。
*/
公共类SearchViewFilterMode扩展活动实现SearchView.OnQueryTextListener{
私有搜索视图;
私有列表视图;
私有最终字符串[]mStrings=Cheeses.sCheeseStrings;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
getWindow().requestFeature(Window.FEATURE\u ACTION\u栏);
setContentView(R.layout.searchview\u过滤器);
mSearchView=(SearchView)findViewById(R.id.search\u视图);
mListView=(ListView)findViewById(R.id.list\u视图);
mListView.setAdapter(新阵列适配器(此,
android.R.layout.simple\u list\u item\u 1,
mStrings);
mListView.setTextFilterEnabled(true);
setupSearchView();
}
私有void setupSearchView(){
mSearchView.setIconifiedByDefault(false);
mSearchView.setOnQueryTextListener(此);
mSearchView.setSubmitButtonEnabled(true);
mSearchView.setQueryHint(“在此处搜索”);
}
公共布尔onQueryTextChange(字符串newText){
if(TextUtils.isEmpty(newText)){
mListView.clearTextFilter();
}否则{
mListView.setFilterText(newText.toString());
}
返回true;
}
公共布尔值onQueryTextSubmit(字符串查询){
返回false;
}
}

MainActivity.java如何?@abood250将此SearchViewFilterMode用作主活动否,我想将其添加到上面的MainActivity.java!!如果我在activity_main.xml中添加id=searchbox的EditText过滤器,它在ActivityMain.java中会是什么样子?@abood250更改它的名称?尝试在代码中做一些更改,而不是寻找所有现成的东西