不用创建微调器

问题描述 投票:1回答:2

我在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()调用.. 可能有什么不对?

android spinner
2个回答
1
投票

请改变这一行

spinner.setAdapter(adapter);

进线

selectedArea.setAdapter(adapter);

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());
© www.soinside.com 2019 - 2024. All rights reserved.