2013-03-24 100 views
1

我正在開發一個項目,我需要動態添加TextViewSpinner。我能夠從我的程序中動態添加這兩件事。通過代碼動態選擇項目中的項目

現在,當我試圖在Spinner中選擇一些項目時,它不會選擇這些項目。

我需要做什麼才能使該項目在Spinner中被選中?

for (Map.Entry<String, String> entry : mapColumns.entrySet()) { 

    spinnerArray = new ArrayList<String>(); 

    final TextView rowTextView = new TextView(cont); 
    final Spinner spinner = new Spinner(cont); 

    rowTextView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
    spinner.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 

    for(String s: entry.getValue().split(",")) { 
     System.out.println(s); 
     s = s.replaceAll("[^a-zA-Z0-9]+",""); 

     spinnerArray.add(s); 
    } 

    ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(cont, android.R.layout.simple_spinner_dropdown_item, spinnerArray); 

    rowTextView.setText(entry.getKey()); 
    rowTextView.setTypeface(null, Typeface.BOLD); 
    spinner.setAdapter(spinnerArrayAdapter); 

    layout.addView(rowTextView); 
    layout.addView(spinner); 
} 

這裏mapColumns將hev鍵值對。因此在Spinner中,所有項目都從該地圖的Value中顯示出來。

問題陳述: -

現在我需要確保,如果有人是選擇在微調的任何項目,它應該得到選擇和可見的肉眼。

我該如何做到這一點基於我的代碼。謝謝您的幫助。

以下是圖像 -

enter image description here

+0

您的意思是在Spinner中顯示爲選中狀態嗎? – AwadKab 2013-03-24 22:17:46

+0

是的。只要我選擇Spinner中的項目,我就看不到任何我選擇的東西,而且一切看起來都很淺。但是當我從string.xml文件中填充同樣的東西時,我能夠看到所有內容,而且它並沒有那麼明亮。我也在我的問題中附加了圖片。 – ferhan 2013-03-24 22:18:58

回答

0

的OnItemSelectedListener添加到您的微調:

spinner.setAdapter(spinnerArrayAdapter); 

// add the listener 
spinner.setOnItemSelectedListener(this); 

然後,在你的活動實施監聽器:

public void onItemSelected(AdapterView<?> parent, View view, 
     int pos, long id) { 
    // An item was selected. You can retrieve the selected item using 
    // parent.getItemAtPosition(pos) 
} 

public void onNothingSelected(AdapterView<?> parent) { 
    // Another interface callback 
} 
+0

感謝Entreco的建議。我的問題是在選擇了微調器中的項目之後,我的肉眼看不到的東西不會反射到我的身上。但吐司告訴我,我確實選擇了一些項目。 – ferhan 2013-03-24 22:03:49

1

嘗試使用此代碼:

ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(con, 
     android.R.layout.simple_spinner_item, spinnerArray); 
    spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
+0

一個簡單的問題,我猜,我發現了這個問題。這裏'con'是'getApplicationContext',所以這就是爲什麼它不工作。但是在將其設置爲'getBaseContext'後,它開始工作。那兩者有什麼區別? – ferhan 2013-03-24 23:24:44

+0

請參閱此鏈接[Link](http://stackoverflow.com/a/6854333/2059970) – AwadKab 2013-03-24 23:31:54