2012-12-06 60 views
1

我明白這個問題已經被問了好幾次了。你會認爲至少有一個解決方案會幫助我,但沒有這樣的運氣。從onItemClick中檢索選定的菜單項文本 - Android?

我有下面的代碼正確(also found here)填充一個列表視圖:

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    // Find the ListView resource. 
    mainListView = (ListView) findViewById(R.id.mainListView); 

    // Create and populate a List of planet names. 
    String[] planets = new String[] { "Mercury", "Venus", "Earth", "Mars", 
             "Jupiter", "Saturn", "Uranus", "Neptune"};  
    ArrayList<String> planetList = new ArrayList<String>(); 
    planetList.addAll(Arrays.asList(planets)); 

    // Create ArrayAdapter using the planet list. 
    listAdapter = new ArrayAdapter<String>(this, R.layout.simplerow, planetList); 


    // Set the ArrayAdapter as the ListView's adapter. 
    mainListView.setAdapter(listAdapter);   
    } 

然而,在獲得所選項目的文本未果。

例如,用戶選擇 「火星」,什麼函數返回文本 「火星」 中的功能:

public void onItemClick(AdapterView<?> parent, View view, int pos, long id) { 

// Retrieve selected text here? 
} 
+1

具有u嘗試這樣'字符串strselected_value =行星[POS];'內onItemClick –

+0

@k:行星無法在此級別解析 –

+0

然後聲明'ArrayList planetList = new ArrayList ();'在類級別意味着在Activity的外側onCreate方法 –

回答

2
public void onItemClick(AdapterView<?> parent, View view, int pos, long id) { 

    String text = parent.getItemAtPosition(pos); // This is the selected text. 
} 
+0

謝謝!我可以在5分鐘內接受答案。僅供參考 - 需要返回字符串:String text = parent.getItemAtPosition(pos)。 ** toString(); ** –

+1

導致您將適配器定義爲ArrayAdapter ,我認爲您不需要再次調用toString()。如果編譯器提供了一些警告,只需將其轉換爲:(String)parent.getItemAtPosition(pos); – TieDad

相關問題