我有一个EditText框,用作搜索框和一些项目列表。 当在搜索时创建新列表时,我已经实现了将原始列表的数组复制到向量。 现在我想使用OnItemClickListener来访问项目的详细信息(就像我们在搜索联系人时一样)。 以下是我的代码:
ListView slist;
private ArrayAdapter<String> arrayAdapter;
int flag=0;
Vector<String> searchResults =new Vector<String>();
String [] SR;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_route);
// Load all data
slist=(ListView)findViewById(R.id.listView1);
arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, Data.supplier_names);
slist.setAdapter(arrayAdapter);
slist.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
Log.d("Clicked Item",slist.getItemAtPosition(arg2).toString());
}
});
// Get the intent, verify the action and get the query
Intent intent = getIntent();
if (Intent.ACTION_SEARCH.equals(intent.getAction()))
{
String query = intent.getStringExtra(SearchManager.QUERY);
Log.d("Search Query - ",query);
// ### searching valid supplier list
for(int i=0;i<Data.supplier_names.length;i++)
{
if(Data.supplier_names[i].toUpperCase().contains(query.toUpperCase()))
{
Log.d("search result - ", Data.supplier_names[i]);
searchResults.add(Data.supplier_names[i]);
}
}
Log.d("Vector Size - ",searchResults.size() + " ");
// ### creating string array
SR=new String[searchResults.size()];
for(int i=0;i<searchResults.size();i++)
{
SR[i]=searchResults.get(i).toString();
Log.d("String array - ", SR[i]);
}
if(SR.length!=0)
{
arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,SR);
slist.setAdapter(arrayAdapter);
}
}
}
请协助我查询。