我有一個微調有三個選項(「一」,「兩」,「三」)。當用戶選擇「One」時,微調框提示變爲「One」。當用戶選擇「三」時,DatePickerDialog
開始並基於用戶輸入,我想將提示更改爲自定義消息。 與此同時我希望微調器保持值「一」,「二」,「三」。微調選擇更改微調Promt
有沒有辦法做到這一點?
這是我到目前爲止已經完成,
MainActivity
spinner=(MySpinner)findViewById(R.id.spinner);
SpinnerAdapter sa=new SpinnerAdapter(getApplicationContext(), android.R.layout.simple_spinner_item, new String[]{"One", "Two", "Three"});
spinner.setAdapter(sa);
spinner.setOnItemSelectedListener(this);
聽者
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
switch (position) {
case 0: var = 0; break;
case 1: var = 1; break;
case 2: var = 3;
Calendar cal = Calendar.getInstance();
DatePickerDialog dpd = DatePickerDialog.newInstance(this, cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH));
dpd.show(getFragmentManager(), "fg");break;
}
FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.frame_layout, new FRTransactions()).commit();
}
SpinnerAdapter
public class MySpinner extends Spinner {
int previousPos=-1;
public MySpinner(Context context) {
super(context);
}
@Override
public void setSelection(int position) {
super.setSelection(position);
if (position==getSelectedItemPosition()&&previousPos==position){
getOnItemSelectedListener().onItemSelected(null, null, position, 0);
}
previousPos=position;
}
class SpinnerAdapter extends ArrayAdapter implements Android.widget.SpinnerAdapter {
Context context;
TextView tv;
String[] strings;
public SpinnerAdapter(Context context, int resource, String[] objects) {
super(context, resource, objects);
this.context=context;
this.strings=objects;
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
return makeLayout(position, convertView, parent, android.R.layout.simple_spinner_dropdown_item);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
int pos=position;
if (parent instanceof AdapterView)
pos = ((AdapterView) parent).getSelectedItemPosition();
return makeLayout(pos, convertView, parent, android.R.layout.simple_spinner_dropdown_item);
}
private View makeLayout(final int position, final View convertView, final ViewGroup parent, final int layout){
if (convertView!=null) tv=(TextView)convertView;
else tv=(TextView)LayoutInflater.from(context).inflate(android.R.layout.simple_spinner_dropdown_item, parent, false);
tv.setText(strings[position]);
return tv;
}
@Override
public int getCount() {
return strings.length;
}
}
使用spinner.setPrompt( 「新的提示信息」); – Pehlaj