Я только что реализовал то, что google documentmentaion учит показывать результаты поиска, я просто хотел знать, как использовать курсор для отображения результатов поиска, чтобы при нажатии на него пользователь перенаправлялся на действия, связанные с ним.
функция, в которой у меня возникла проблема:
private void handleIntent(Intent intent) {
if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
String query = intent.getStringExtra(SearchManager.QUERY);
Cursor c = myDB.getWordMatches(query, null);
//process Cursor and display results
}
}
, а полный класс вышеупомянутой функции
public class MainActivity extends AppCompatActivity {
FloatingActionButton fab;
DatabaseHelper myDB;
String nameListItem;
ArrayList<String> theList=new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fab=(FloatingActionButton)findViewById(R.id.addCustomer);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(MainActivity.this,AddCustomer.class);
startActivity(intent);
}
});
final ListView listView=(ListView)findViewById(R.id.listView);
myDB=new DatabaseHelper(this);
Cursor data=myDB.getAllData();
if(data.getCount()==0){
Toast.makeText(this,"No Data found",Toast.LENGTH_SHORT).show();
}
else
while (data.moveToNext()){
theList.add(data.getString(1));
ListAdapter listAdapter=new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,theList);
listView.setAdapter(listAdapter);
}
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapter, View view, int position, long arg) {
Intent intent = new Intent(MainActivity.this,Itemshow.class);
nameListItem=listView.getItemAtPosition(position).toString();
intent.putExtra("item",nameListItem);
startActivity(intent);
}
});
Toolbar toolbar=(Toolbar)findViewById(R.id.toolbarmain);
setSupportActionBar(toolbar);
handleIntent(getIntent());
}
private void handleIntent(Intent intent) {
if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
String query = intent.getStringExtra(SearchManager.QUERY);
Cursor c = myDB.getWordMatches(query, null);
//process Cursor and display results
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater=getMenuInflater();
inflater.inflate(R.menu.menu_main,menu);
SearchManager searchManager =
(SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchView searchView =
(SearchView) menu.findItem(R.id.search).getActionView();
searchView.setSearchableInfo(
searchManager.getSearchableInfo(getComponentName()));
return true; }
}
, если это невозможно, вы можете сказать мне, как я могу напрямую показать результатыв том же списке?