【发布时间】:2015-11-28 07:17:20
【问题描述】:
我正在尝试使用微调器小部件获取日期。日期显示在 TOAST 消息上,但是当我单击微调器日期选择器对话框时不会打开。找不到错误。
这是我的代码 sn-p。
主要活动。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_apply_leave);
leaveApplyFromDate = (Spinner)findViewById(R.id.leaveApplyFromDate);
calendar = Calendar.getInstance();
year = calendar.get(Calendar.YEAR);
month = calendar.get(Calendar.MONTH);
day = calendar.get(Calendar.DAY_OF_MONTH);
showDate(year, month+1, day);
leaveApplyFromDate.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getBaseContext(), leaveApplyFromDate.getSelectedItem().toString(),
Toast.LENGTH_SHORT).show();
setDate(view);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
@Override
protected Dialog onCreateDialog(int id) {
// TODO Auto-generated method stub
if (id == 999) {
return new DatePickerDialog(this, myDateListener, year, month, day);
}
return null;
}
@SuppressWarnings("deprecation")
public void setDate(View view) {
showDialog(999);
Toast.makeText(getApplicationContext(), "ca", Toast.LENGTH_SHORT)
.show();
}
private DatePickerDialog.OnDateSetListener myDateListener = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker arg0, int arg1, int arg2, int arg3) {
// TODO Auto-generated method stub
// arg1 = year
// arg2 = month
// arg3 = day
showDate(arg1, arg2+1, arg3);
}
};
private void showDate(int year, int month, int day) {
// leaveApplyFromDate.setText(new StringBuilder().append(day).append("/")
// .append(month).append("/").append(year));
Toast.makeText(getBaseContext(), new StringBuilder().append(day).append("/")
.append(month).append("/").append(year),
Toast.LENGTH_SHORT).show();
}
这是我的 xml 布局。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.hrm.staff.ApplyLeave">
<Spinner
android:id="@+id/leaveApplyFromDate"
android:layout_height="@dimen/spinner_height"
android:layout_weight="0.65"
android:background="@color/spinner_bg_start"
android:ems="10" />
</RelativeLayout>
【问题讨论】:
-
为什么布局中的微调器没有宽度?
-
@OrkunKoçyiğit:因为我已将其放入表格行并为其设置了权重,如您所见。
-
如果微调器不为空,您的代码对我有效
-
对不起,我没有得到你。这是什么意思..微调器不是空的..?
-
我添加了数字从 1 到 10 的简单适配器,如果我选择某个数字,它就可以工作。
标签: android datepicker