私はアイテムのリストを表示するはずの私のアプリにスピナーを持っています。最初はデフォルトテキストが表示され、選択が完了すると、すべてのアイテムリストがドロップダウンメニューに表示されます。スピナーの問題は、最初の項目を選択するときにデフォルト値が選択されることです。私はいくつかのことを知っています、それは簡単な質問かもしれません。しかし、もしあなたがdownvoteしようとしている、私は可能なすべての解決策を試みたので、それを行う前に答えを提案してください。以下は私のコードを投稿しています。見てください。前もって感謝します。選択した項目のデフォルト値を選択しているスピナーの最初の項目を選択する
The spinner Adapter:
public class CustomSpinnerAdapter extends ArrayAdapter<String> {
Context context;
ArrayList<String> objects;
String firstElement;
boolean isFirstTime;
public CustomSpinnerAdapter(Context context, int textViewResourceId, ArrayList<String> objects, String defaultText) {
super(context, textViewResourceId, objects);
this.context = context;
this.objects = objects;
this.isFirstTime = true;
setDefaultText(defaultText);
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
if(isFirstTime) {
objects.set(0, firstElement);
isFirstTime = false;
}
return getCustomDropdownView(position, convertView, parent);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
notifyDataSetChanged();
return getCustomView(position, convertView, parent);
}
public void setDefaultText(String defaultText) {
this.firstElement = objects.get(0);
objects.set(0,defaultText);
}
public View getCustomView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View row = inflater.inflate(R.layout.spinner_row, parent, false);
TextView label = (TextView) row.findViewById(R.id.spinnerText);
label.setText(objects.get(position));
return row;
}
public View getCustomDropdownView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View row = inflater.inflate(R.layout.simple_spinner_dropdown_item, parent, false);
CheckedTextView label = (CheckedTextView) row.findViewById(R.id.text1);
label.setText(objects.get(position));
return row;
}
}
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
In the mainactivity:
CustomSpinnerAdapter customSpinnerAdapter = new CustomSpinnerAdapter((Context)MainActivity.this,
R.layout.spinner_row, dcuName, "Select One DCU");
dcuListScheduler.setAdapter(customSpinnerAdapter);
ここで 'setOnItemSelectedListener'メソッドはありますか? –
あなたはスピナーの最初の項目の選択を防ぐ必要があるということを意味しますか? –