我不想在微调器中显示选定的项目,我的微调器看起来像这样......!
我的微调器背景只是您可以在文本后面看到的箭头...请帮助我...提前谢谢..
我建议您可以使用ImageView
&AlertDialog
代替Spinner
.
只需在 ImageView 上打开 AlertDialog 并在 AlertDialog (SingleChoice) 和 setText 中显示您的数据,您的项目在 AlertDialog 中选择。
这是 AlertDialog 的示例代码。
new AlertDialog.Builder(this)
.setSingleChoiceItems(items,0, new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
textview.setText(items[which])
}
})
.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
}
})
.show();
其中 items 是您的数据的 String[]。OnClick
在中调用此代码ImageView
。
您还可以检查如何在对话框中添加列表
spinnerSildeMenu
.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
arg0.getChildAt(0).setVisibility(View.GONE);
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
要隐藏微调器下拉列表中的任何项目,您需要根据所需的标准传递需要隐藏的项目的位置。
public class CustomAdapter extends ArrayAdapter<String> {
private List<String> dates;
private int hideItemPostion;
public CustomAdapter (Context context, int resource, List<String> dates) {
super(context, resource,dates);
this.dates=dates;
}
public void setItemToHide(int itemToHide)
{
this.hideItemPostion =itemToHide;
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
View v = null;
if (position == hideItemPostion) {
TextView tv = new TextView(getContext());
tv.setVisibility(View.GONE);
tv.setHeight(0);
v = tv;
v.setVisibility(View.GONE);
}
else
v = super.getDropDownView(position, null, parent);
return v;
}}
设置适配器如下
final CustomAdapter dataAdapter = new CustomAdapter(this,R.layout.spinner_item,dates);
dataAdapter.setDropDownViewResource(R.layout.spinner_dropdown_item);
spinner.setAdapter(dataAdapter);
dataAdapter.setItemToHide(0);
从下拉列表中选择一些项目时,位置也需要更改。在您的情况下,所需的项目是选定的项目,因此需要将选定的位置传递给适配器。
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, final int i, long l) {
dataAdapter.notifyDataSetChanged();
mEPGDateSelector.setSelection(i);
dataAdapter.setItemToHide(i);}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});