跟着这些步骤:
创建一个自定义微调器类
import android.content.Context; import android.util.AttributeSet; import android.view.View; import android.widget.AdapterView; import android.widget.Spinner; public class SpinneronSameSelection extends Spinner { onItemSelectedListener listener; private AdapterView<?> lastParent; private View lastView; private long lastId; public SpinneronSameSelection(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub initlistner(); } @Override public void setSelection(int position) { if (position == getSelectedItemPosition() && listener != null) { listener.onItemSelected(lastParent, lastView, position, lastId); } else { super.setSelection(position); } } private void initlistner() { // TODO Auto-generated method stub super.setonItemSelectedListener(new onItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub lastParent = parent; lastView = view; lastId = id; if (listener != null) { listener.onItemSelected(parent, view, position, id); } } @Override public void onNothingSelected(AdapterView<?> parent) { // TODO Auto-generated method stub if (listener != null) { listener.onNothingSelected(parent); } } }); } public void setonItemSelectedEvenIfUnchangedListener( onItemSelectedListener listener) { this.listener = listener; }}
onItemSelectedListener
在您的活动中创建
private AdapterView.onItemSelectedListener listener; listener = new AdapterView.onItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> adapterView, View arg1, int i, long arg3) { //startTimeString = adapterView.getItemAtPosition(i).toString(); DateFormat currentDateFormat = new SimpleDateFormat("HH:mm:ss"); userAvailableTimeInSF = currentDateFormat.format(new Date()); final TextView startTimeSpinnerTV = (TextView) adapterView.getSelectedView(); startTimeSpinnerTV.setText(userAvailableTimeInSF); switch (i) { case 0: // userAvailableTimeInSF = currentDateFormat.format(new Date()); startTimeSpinnerTV.setText("Now"); break; case 1: final Calendar c = Calendar.getInstance(); mHour = c.get(Calendar.HOUR_OF_DAY); mMinute = c.get(Calendar.MINUTE); TimePickerDialog timePickerDialog = new TimePickerDialog(MainActivity.this, new TimePickerDialog.onTimeSetListener() { @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { Calendar date = Calendar.getInstance(); date.set(Calendar.HOUR_OF_DAY, hourOfDay); date.set(Calendar.MINUTE, minute); date.set(Calendar.AM_PM, date.get(Calendar.AM_PM)); //showTime(hourOfDay, minute); Toast.makeText(getbaseContext(), "userAvailableTimeInSF: " + userAvailableTimeInSF, Toast.LENGTH_SHORT).show(); } }, mHour, mMinute, false); timePickerDialog.show(); break; } } @Override public void onNothingSelected(AdapterView<?> arg0) { // TODO Auto-generated method stub } };}
将侦听器对象添加到自定义微调器方法
SpinneronSameSelection startTimeSpinner;in onCreate(): startTimeSpinner = (SpinnerOnSameSelection) findViewById(R.id.idOfItemInXml);startTimeSpinner.setonItemSelectedEvenIfUnchangedListener(listener);
在您的xml
档案中
<your_package_name.SpinneronSameSelection android:id="@+id/startTimeSpinner" android:layout_width="match_parent" android:layout_height="40dp" android:layout_alignParentBottom="true" android:entries="@array/mList"></your_package_name.SpinnerOnSameSelection>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)