2012-06-19 40 views
1

的價值我有這樣的ListView設置:獲取ListView控件的TextView

 ListView listView = getListView(); 
     listView.setTextFilterEnabled(true); 

     listView.setOnItemClickListener(new OnItemClickListener() { 

      public void onItemClick(AdapterView<?> arg0, View arg1, 
        int arg2, long id) { 

       // 

       Intent i = new Intent(getApplicationContext(), Rate.class); 
       startActivity(i); 

      } 
     }); 

     setListAdapter(new ArrayAdapter<String>(Items.this, R.layout.list, 
       items)); 

它是一個標準的ListView正如你看到的。每行都有一個用List「items」填充的TextView。我從MySQL數據庫中提取並通過JSON循環輸出。

我只希望能夠單擊該行,並使用其單名,並將該名稱作爲字符串傳遞給Rate.class活動。我如何在代碼中做到這一點?

回答

0

您可以創建特定的數組適配器實例,而不是創建一個傳遞給該函數。然後在OnItemClick()函數中,int arg2是用戶選擇的陣列適配器中的索引。您可以從文本視圖中獲取陣列適配器的視圖和getText()。

2

將putExtra添加到您的意圖(見下文)。我假設你有作爲活動成員的列表'items',arg2參數基本上是在列表中單擊的項目的索引,您可以使用它從'items'列表中獲取名稱。

 public void onItemClick(AdapterView<?> arg0, View arg1, 
       int arg2, long id) { 

      // 

      Intent i = new Intent(getApplicationContext(), Rate.class); 
      i.putExtra("name", items.get(arg2)); 
      startActivity(i); 

     } 
+0

完美!我沒有意識到arg2是索引,可以變成一個字符串。 – KickingLettuce

0

一個傳遞給onItemClick的事情是被點擊的觀點:

演員以適當的類型,並調用它getText();例如:

final String text = ((TextView)view).getText();