2014-10-30 27 views
0

我有一個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); 
     } 

    } 
} 

請協助我進行查詢。

回答