不用创建微调器

时间:2011-03-16 20:54:12

标签: android spinner

我在TableRow中使用了一个微调器并且它工作得很好,除了我不喜欢微调器图标根据所选项目伸展。我试图删除xml中的Spinner部分并在我的代码上创建它。

在OnCreate()中创建微调器:

selectArea = /*(Spinner)this.findViewById(R.id.spinner);*/new Spinner(this);

String[] ss = getResources().getStringArray(R.array.countries);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, ss);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);

selectArea.setOnItemSelectedListener(new MyOnItemSelectedListener());
selectArea.setSelection(prefInt);

处理选择事件:

public class MyOnItemSelectedListener implements OnItemSelectedListener {
    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
        Log.d(TAG, "onItemSelected() " + id);
    }

    public void onNothingSelected(AdapterView<?> parent) {
        // Do nothing.
    }
}

它几乎完美无缺。 TableRow显示没有微调器图标,在触摸TableRow时,它会弹出要选择的项目。我唯一的问题是,在选择一个tiem时,我从来没有得到我的onItemSelected()调用..
可能有什么不对?

2 个答案:

答案 0 :(得分:1)

请更改此行

spinner.setAdapter(adapter);

进入行

selectedArea.setAdapter(adapter);

答案 1 :(得分:0)

看我在这里创建了微调器

 Spinner selectArea= new Spinner(Activity.this);
     String[] ss = getResources().getStringArray(R.array.countries);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, ss);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    selectArea.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    selectArea.setAdapter(adapter);              
    linearLayout1.addView(selectArea);//to add your spinner
    selectArea.setOnItemSelectedListener(new MyOnItemSelectedListener());