私のコードは、電話番号と連絡先名の電話連絡先の詳細を提供します。私は以下のコードを使用しましたが、検索機能で正しく機能しません。 servers_adp.getFilter()行でエラーが表示されます。filter(text);ここでは、getFilter()のcreateメソッドのエラーを示します。私のコードは検索機能では機能しません
-5
A
答えて
0
最初に、アダプターをFilterableにします。メソッドを追加する際にエラーが発生します。メソッドを追加します。
このメソッドの中に、パブリックObject getFilter()メソッド内のすべてのコードをコピーしてコピーします。これを済ませたら、public Object getFilter()メソッドを削除してください。
これはうまくいくはずです。
public class ContactsActivity extends BaseActivity{
EditText searchcontact_et;
ArrayList<String> namearr,numarr,photoarr;
ArrayAdapter<String> adp;
ServerAdapter servers_adp;
ListView lstContacts;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_contacts);
searchcontact_et=(EditText)findViewById(R.id.editTextSeachcontact);
servers_adp = new ServerAdapter();
namearr = new ArrayList<String>();
numarr = new ArrayList<String>();
photoarr = new ArrayList<String>();
ListView lstContacts = (ListView) findViewById(R.id.lst_contacts);
searchcontact_et.addTextChangedListener(new TextWatcher() {
private boolean mCountIncreased;
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,int after) {}
@Override
public void afterTextChanged(Editable s) {
String text = searchcontact_et.getText().toString().toLowerCase(Locale.getDefault());
servers_adp.getFilter().filter(text);
}
});
}
protected void onStart() {
// TODO Auto-generated method stub
Cursor cursornum = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);
if (cursornum != null) {
while (cursornum.moveToNext()) {
String contactname = cursornum.getString(cursornum.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
String contactnum = cursornum.getString(cursornum.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
namearr.add(contactname);
numarr.add(contactnum);
//photoarr.add(photoPath);
}
}lstContacts = (ListView) findViewById(R.id.lst_contacts);
lstContacts.setAdapter(servers_adp);super.onStart();
}
public class ServerAdapter extends BaseAdapter implements Filterable{
public int getCount() {
// TODO Auto-generated method stub
return namearr.size();
}
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View v = null;
LayoutInflater inflater = getLayoutInflater();
v = inflater.inflate(R.layout.lv_layout, null);
TextView contact_name = (TextView)v.findViewById(R.id.contact_name);
ImageView contact_photo = (ImageView)v.findViewById(R.id.contact_photo);
TextView contact_num=(TextView)findViewById(R.id.contact_number);
try {
String arlstname[] = namearr.get(position).split(",");
String arlstnumber[] = numarr.get(position).split(",");
for (int i = 0; i < arlstname.length; i++) {
contact_name.setText(arlstname[i]);
contact_num.setText(arlstnumber[i]);
if(arlstname[i].equals("Lav")|| arlstname[i].equals("Teja")){
Drawable myDrawable = getResources().getDrawable(R.drawable.call_person);
contact_photo.setImageDrawable(myDrawable);
}
else{
Drawable myDrawable = getResources().getDrawable(R.drawable.ic_launcher);
contact_photo.setImageDrawable(myDrawable);
}
}
}
catch (Exception e) {
// TODO: handle exception
}
return v;
}
@Override
public Filter getFilter() {
return new Filter() {
@Override
protected FilterResults performFiltering(CharSequence constraint) {
FilterResults results = new FilterResults();
if (constraint == null || constraint.length() == 0) {
//no constraint given, just return all the data. (no search)
results.count = list.size();
results.values = list;
} else {//do the search
List<String> resultsData = new ArrayList<>();
String searchStr = constraint.toString().toUpperCase();
for (String s : list)
if (s.toUpperCase().contains(searchStr)) resultsData.add(s);
results.count = resultsData.size();
results.values = resultsData;
}
return results;
}
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
listFiltered = (ArrayList<String>) results.values;
notifyDataSetChanged();
}
};
}
}
}
関連する問題
- 1. AngularJS検索が機能しません
- 2. PHPコードがうまく動作しません。検索機能
- 3. Joomla 3.5.1の検索機能がインデックスページで機能していません
- 4. Googleマップの検索ボックス機能がモーダルウィンドウで機能していません
- 5. 私の機能は一度しか機能しません
- 6. NG - 検索入力フィールドでは機能しません。
- 7. 検索が「phpbb3」フォーラムでは機能しません
- 8. stricmpは私のコードでは機能しません
- 9. 弾性検索:全文検索が機能しません
- 10. 私のAjaxコードは機能しませんでした
- 11. なぜ私のフィルター機能は機能しませんか?
- 12. なぜ私の追加機能は機能しませんか?
- 13. スマートテーブルのst検索は機能しません
- 14. VSCodeのグローバル検索は機能しません
- 15. $ .getJSON経由の検索は機能しませんか?
- 16. 新しい機能はChromeの機能では機能しません
- 17. 検索機能
- 18. 検索機能
- 19. 挿入バルクデータは機能しません - 弾性検索
- 20. Rails 4 + datatables:並べ替え/検索は機能しません
- 21. 私のdrawStringは機能しません
- 22. 私のオートナンバーコードは機能しません
- 23. ソートアルゴリズムのスワップ機能は、ソート機能のパラメータでは機能しません。
- 24. Ransack検索がレールモデルでは機能していませんが、レールコンソールでうまく機能しています
- 25. フルテキスト検索機能はインストールウィザードから利用できません
- 26. Wordpressの機能はカスタムテーマでは機能しません
- 27. Djangoのキャッシュクリア機能はビューキャッシュでは機能しませんか?
- 28. elasticsearchでマルチフィールド検索が機能しませんでしたか?
- 29. jQueryのクリック機能は私の部門では機能しません
- 30. javascriptの検索機能がIEで動作しません
我々がデバッグできるように、フィルターのクラスを表示してください。 –
私はその機能のコード全体を投稿してください。 – santhi