如何从自定义微调Android中
问题描述:
公共类MainActivity删除选择项目延伸活动{
String[] DayOfWeek = { "Select Item", "1", "2", "3", "4", "5", "6" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Spinner mySpinner = (Spinner) findViewById(R.id.spinner);
mySpinner.setAdapter(new MyCustomAdapter(MainActivity.this,
R.layout.row, DayOfWeek));
}
public class MyCustomAdapter extends ArrayAdapter<String> {
public MyCustomAdapter(Context context, int textViewResourceId,
String[] objects) {
super(context, textViewResourceId, objects);
// TODO Auto-generated constructor stub
}
@Override
public View getDropDownView(int position, View convertView,
ViewGroup parent) {
// TODO Auto-generated method stub
return getCustomView(position, convertView, parent);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
return getCustomView(position, convertView, parent);
}
public View getCustomView(int position, View convertView,
ViewGroup parent) {
// TODO Auto-generated method stub
// return super.getView(position, convertView, parent);
LayoutInflater inflater = getLayoutInflater();
View row = inflater.inflate(R.layout.row, parent, false);
TextView label = (TextView) row.findViewById(R.id.weekofday);
label.setText(DayOfWeek[position]);
ImageView icon = (ImageView) row.findViewById(R.id.icon);
if (DayOfWeek[position] == "Sunday") {
icon.setImageResource(R.drawable.icon);
} else {
icon.setImageResource(R.drawable.icongray);
}
return row;
}
}
}
这里是我的代码,我能够在旋转显示的价值,但我希望显示仅在Textview中选择项目不在Value中,同时其显示值也告诉我如何删除该项目,请参阅屏幕并告诉我如何删除该项目
答
一个简单的解决办法是:
a)所述阵列修改到
String[] DayOfWeek = { "1", "2", "3", "4", "5", "6" };
b)中呼叫mySpinner.setPromptId(),并设置与值 “选择信息” 的字符串reosurceId。
仅当下拉未打开或关闭时才有“选择项目”,请点击此链接How to make an Android Spinner with initial text "Select One"?
答
ListPopupWindow numberList;
TextView spDays;
ArrayList<Map<String, String>>() listTrans;
in oncreate spDays.setonclicklistner(this);spDays.setText("Select");
setNumberListSpinnerView();
in onclick(){
when spDays clicked :- numberList.show();
}
void setNumberListSpinnerView() {
numberList= new ListPopupWindow(this);
numberList.setAnchorView(spDays);
numberList.setOnItemClickListener((new AdapterView.OnItemClickListener() {
@Override
getListItem();
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Map map = listTrans.get(position);
spDays.setText(map.get("circle_name").toString());
circle_name = map.get("circle_name") + "";
circle_id = map.get("circle_id").toString();
circleList.dismiss();
Log.d("Circle id:", circle_id + "");
getRetails();
}
}));
}
void getListItem(){
String[] numbers = {"1","2","3","4","5","6"};
listTrans = new ArrayList<Map<String, String>>();
LinkedHashMap<String, String> tran = new LinkedHashMap<String, String>();
for (String number : numbers) {
tran.put("numbers", number);
listTrans.add(tran);
}
SimpleAdapter adapter = new SimpleAdapter(AddRetailSurvey.this, listTrans,
android.R.layout.simple_spinner_dropdown_item,
new String[]{"numbers"},
new int[]{android.R.id.text1});
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
numberList.setAdapter(adapter);
}
更改代码与您的要求,检查并让我知道如果你面临任何问题。这项技术的最佳部分可以改变文字颜色。谢谢:)
AFAIK这不是Android'Spinner'工作的方式:它只显示值,而不显示标题。所以只需使用值并删除“选择项目”。 – shkschneider 2014-12-05 10:40:28
正如@shkschneider所述,这不是微调器的工作原理: 在微调控制器上方添加一个textView并从微调控制器中删除“Select item”数据 – Altoyyr 2014-12-05 10:43:19
使用spinner.setPrompt(“Select Item”);并从DayOfWeek数组中删除这个“Select Item”字符串。 – 2014-12-05 10:44:17