通过代码动态选择Spinner中的项目

时间:2013-03-24 21:37:34

标签: java android spinner android-linearlayout android-spinner

我正在开展一个项目,我还需要动态添加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将是键值对。因此,在Spinner中,所有项目都会从该地图的值中显示出来。

问题陈述: -

现在我需要确定是否有人在Spinner中选择任何项目,它应该被选中并且肉眼可见。

如何根据我的代码执行此操作。谢谢你的帮助。

下面是图片 -

enter image description here

2 个答案:

答案 0 :(得分:1)

尝试使用此代码:

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

答案 1 :(得分: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
}