我正在开发应用程序,其中有列表和上面的编辑文本,我将在editText中键入内容的那一刻我应该得到结果匹配的类型word.bt我不能得到结果,Plz告诉我在哪里犯错误?以下是我的活动和适配器.
**活动**
public class ListFilterActivity extends ListActivity{
ListView list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list_filter);
list = getListView();
list.isTextFilterEnabled();
// final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
// android.R.layout.simple_list_item_1, android.R.id.text1,
// getModel());
final CustomAdapter adapter = new CustomAdapter(ListFilterActivity.this, getModel());
setListAdapter(adapter);
EditText filterEditText = (EditText) findViewById(R.id.filterText);
filterEditText.addTextChangedListener(new TextWatcher() {
public void onTextChanged(CharSequence s, int start, int before,
int count) {
adapter.getFilter().filter(s.toString());
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
public void afterTextChanged(Editable s) { …Run Code Online (Sandbox Code Playgroud) 在我Listview,我有文字和图像,他们存储在ArrayList.
我BaseAdapter用来显示列表.
我想filter在列表中使用基于输入的文本EditText,但是不起作用.
我的代码是:adv是EditText
adv.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int arg1, int arg2, int arg3) {
// TODO Auto-generated method stub
viewadapter.getFilter().filter(s);
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable arg0) {
// TODO Auto-generated method stub
}
});
Run Code Online (Sandbox Code Playgroud)
而我的BaseAdapter工具Filterable,以便getFilter在该方法是:
@Override
public Filter getFilter() {
// …Run Code Online (Sandbox Code Playgroud) 我试图在基础适配器上实现一个getFilter()来过滤掉List上的搜索结果.有没有关于如何实现getFilter()的示例?
MainActivity.java
final AppInfoAdapter adapter = new AppInfoAdapter(this, Utilities.getSystemFilteredApplication(this), getPackageManager());
public void onTextChanged(CharSequence s, int start, int before,
int count) {
adapter.getFilter().filter(s); //Filter from my adapter
adapter.notifyDataSetChanged(); //Update my view
}
Run Code Online (Sandbox Code Playgroud)
AppInfoAdapter.java
package com.example.permission;
import java.util.List;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.Filter;
import android.widget.Filterable;
import android.widget.ImageView;
import android.widget.TextView;
public class AppInfoAdapter extends BaseAdapter implements Filterable{
private Context mContext;
private List mListAppInfo;
PackageManager mPackManager;
public AppInfoAdapter(Context c, List list, …Run Code Online (Sandbox Code Playgroud) 我想实现getFilter()我的功能ListView,但每次我输入的东西EditText我ListView就会消失.
我的SetHelpRows档案:
public class SetHelpRows {
String name;
String id;
public String getName () {
return name;
}
public void setName (String name) {
this.name = name;
}
public String getID () {
return id;
}
public void setID (String id) {
this.id = id;
}
public SetHelpRows(String name, String id) {
super();
this.name = name;
this.id = id;
}
}
Run Code Online (Sandbox Code Playgroud)
我的SetHelpRowsCustomAdapter档案:
import java.util.ArrayList;
import android.app.Activity;
import android.content.Context; …Run Code Online (Sandbox Code Playgroud)