2013-03-24 98 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