-2
ここに実装していますSearchView
オーバーコンタクトlistview
searchviewが動作しておらず、エラーが発生します。私を助けてください。私はアンドロイドの新人です listview
のゲッター&セッタークラスを作成していて、adapter
という名前で "Custom_adapter
"を作成しています。ここに私のMainActivity
コードは私がここにこだわって助けてください。SearchViewがリストビューのAndroidアプリケーションで機能していません
public class MainActivity extends AppCompatActivity {
ListView listView;
Button sync;
String name, phone;
//Adapter adapter;
Intent intent;
ProgressDialog progressDialog;
TextView tv_count;
ArrayList<Contact_list> listitem;
SearchView searchView;
ArrayAdapter<Contact_list> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv_count= (TextView) findViewById(R.id.tv_size);
// tv_count.setText("hello");
listitem = new ArrayList<Contact_list>();
listView = (ListView) findViewById(R.id.listViewID);
registerForContextMenu(listView);
//for searchview
searchView= (SearchView) findViewById(R.id.searchID);
sync= (Button) findViewById(R.id.syncID);
sync.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// GET CONTACTS DATA
GetContactsIntoArrayList();
}
});
}
public void GetContactsIntoArrayList(){
Cursor cursor;
cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null, null, null);
while (cursor.moveToNext()) {
name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
phone = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
listitem.add(new Contact_list(name,phone));
listView.setAdapter(new Custom_adapter(MainActivity.this, listitem));
/**
* for searchview
*/
adapter = new ArrayAdapter<Contact_list>(this,
R.layout.custom_adapter, listitem);
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
//it gives error on this line
adapter.getFilter().filter(newText);
// adapter.getF
return false;
}
});
}
cursor.close();
}
}