Spinner不显示选定的值

Jol*_*lly 24 android arraylist selected spinner

我已经通过数据库填充数组列表实现了微调器.我可以在我的微调器数组适配器中获取并显示数组列表但是如果我在微调器中选择它没有在微调器中显示?我在这里有什么错误?

这是我的代码,

 Spinner spinner1 = (Spinner) findViewById(R.id.prospin);
     ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, providerlist);

  adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner1.setAdapter(adapter1);
Run Code Online (Sandbox Code Playgroud)

我使用这个来获取所选的项目字符串,

Spinner provid = (Spinner)findViewById(R.id.prospin);
String provider =provid.getSelectedItem().toString();
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助我!

Cat*_*luc 45

这个答案可能有点愚蠢,但尝试一下.它对我有用.

  1. 检查微调器的背景颜色!
  2. 如果它是白色的改变它
  3. 好好享受!


Pra*_*ani 13

我遇到了同样的问题并通过notifyDataSetChanged()在Spinner中添加绑定数据来解决.

首先,我使用Blank 绑定适配器ArrayList然后从服务器获取项目列表并添加到该列表但notifyDataSetChanged()在更新列表后忘记了.

只需adapter.notifyDataSetChanged();在更新列表后添加 .

希望它会有所帮助.

  • 这个答案很难理解,如果您提供示例代码可能会更有帮助. (5认同)

Tas*_*ood 10

问题:

微调器既不显示默认值也不显示选定项目值.但选择后会显示下拉菜单项.

原因:

背景和文字颜色都是白色!!!

解决方案:

XML(优选):

为spiner项目编写自定义布局,并使用它而不是默认值android.R.layout.simple_spinner_item.

如何更改微调文本大小和文本颜色?

代码(不太可靠):

your_spinner_instance.setOnItemSelectedListener(new Spinner.OnItemSelectedListener(){
    public void onItemSelected(AdapterView<?> parent, View view, int pos,
                               long id) {
        ((TextView) view).setTextColor(Color.RED);
    }
    public void onNothingSelected(AdapterView<?> parent) {
    }

});
Run Code Online (Sandbox Code Playgroud)

Android需要一些重大更新,或者飞镖和扑动应该接管...

谢谢Catluc


Mla*_*jac 8

使用wrap_content的高度Spinner

可能它没有足够的高度来显示文本。


小智 5

如果您有自定义适配器,您应该更改 TextView 文本颜色

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    TextView view = (TextView) super.getView(position, convertView, parent);
    view.setTextColor(Color.parseColor("#000000"));
    return view;
}
Run Code Online (Sandbox Code Playgroud)

如果您没有自定义适配器,您应该更改微调器背景


小智 5

如果上下文没有正确给出,也会发生这种情况。我在getApplicationContext()需要的地方使用getBaseContext()


Joa*_*ins -1

您应该使用第一个微调器来获取值。

尝试以下代码:

String provider = spinner1.getSelectedItem().toString();
Run Code Online (Sandbox Code Playgroud)

您正在做的是获取微调器的默认值。