1
을 선택하지 여기에 내 코드회가 첫 번째 항목
Spinner agegroup;
public void generateAgeGroupSpinner() {
final List<AgeGroupModel> ageGroup = new ArrayList<>();
agegroup = (Spinner) findViewById(R.id.ageGroupSpinner);
// Spinner click listener
agegroup
.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent,
View view, int position, long id) {
// On selecting a spinner item
String item = parent.getItemAtPosition(position)
.toString();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
// Spinner Drop down elements
ageGroupList.add(new AgeGroupModel(AgeGroup.BELOW18.getId(), AgeGroup.BELOW18.getName()));
ageGroupList.add(new AgeGroupModel(AgeGroup.BETWEEN_19_35.getId(), AgeGroup.BETWEEN_19_35.getName()));
ageGroupList.add(new AgeGroupModel(AgeGroup.BETWEEN_36_45.getId(), AgeGroup.BETWEEN_36_45.getName()));
ageGroupList.add(new AgeGroupModel(AgeGroup.ABOVE45.getId(), AgeGroup.ABOVE45.getName()));
// Creating adapter for spinner
ArrayAdapter<AgeGroupModel> agedataAdapter = new ArrayAdapter<AgeGroupModel>(
this, android.R.layout.simple_spinner_item, ageGroup);
// Drop down layout style - list view with radio button
agedataAdapter
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// attaching data adapter to spinner
agegroup.setAdapter(typeSpinnerAdapterForAge);
agegroup.setOnItemSelectedListener(typeSelectedListener);
agegroup.setOnTouchListener(typeSpinnerTouchListener);
}
설정 회 어댑터 typeSpinnerAdapterForAge의
private SpinnerAdapter typeSpinnerAdapterForAge = new BaseAdapter() {
private TextView text;
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = mInflator.inflate(R.layout.row_spinner, null);
}
text = (TextView) convertView.findViewById(R.id.spinnerTarget);
if (!selected) {
if (parent.equals(agegroup)) {
text.setText(getText(R.string.age_group));
}
} else {
text.setText(ageGroupList.get(position).getName());
}
return convertView;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public AgeGroupModel getItem(int position) {
return ageGroupList.get(position);
}
@Override
public int getCount() {
return ageGroupList.size();
}
public View getDropDownView(int position, View convertView,
ViewGroup parent) {
if (convertView == null) {
convertView = mInflator.inflate(
android.R.layout.simple_spinner_dropdown_item, null);
}
text = (TextView) convertView.findViewById(android.R.id.text1);
text.setText(ageGroupList.get(position).getName());
return convertView;
}
;
};
typeSpinnerSearchListener
회 드롭 다운의첫 번째 값이 처음에 선택되지
private View.OnTouchListener typeSpinnerTouchListener = new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
selected = true;
((BaseAdapter) typeSpinnerAdapter).notifyDataSetChanged();
return false;
}
};
, 다른 i를 선택해야합니다. 그때 코드는 첫 번째 항목에서도 잘 작동합니다
기본적으로 어떤 항목이 선택되어 있습니까? 아마도 첫 번째 항목은'setOnItemSelectedListener'가 호출되지 않는 이유입니다. –