作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
美好的一天,似乎无法为此找到解决方案。我有 2 个按钮,按下时会打开一个日期选择器对话框,但我现在的问题是,如何将它们设置为 OnDateSet 方法上的适当按钮。我为日期使用 DialogFragment,然后在我的 Activity 中实现 DateListener。我试过使用 getTag() 但没有成功获取标签。这是我尝试过的:
public void showfromDatePickerDialog(View v) {
DialogFragment dateFragment = new DateDialogFragment();
dateFragment.show(getSupportFragmentManager(), "fromdatePicker");
}
public void showtoDatePickerDialog(View v) {
DialogFragment dateFragment = new DateDialogFragment();
dateFragment.show(getSupportFragmentManager(), "todatePicker");
}
public void onDateSet(DatePicker view, int year, int month, int day) {
StringBuilder builder = new StringBuilder();
builder.append(day).append("-")
.append(month).append("-")
.append(year);
String text= builder.toString();
if(view.getTag().toString().equals("fromdatePicker")) { // error here
Log.d(TAG, "got here" + text);
fromdate.setText(text);
}
if(view.getTag() == "todatePicker") {
todate.setText(text);
}
有什么想法可以实现吗?我一直看到有关使用 2 个不同 DialogFragment 类的解决方案,但我猜应该有另一种方法。还是我错了?谢谢
最佳答案
好的,我有办法解决这些问题。这对遇到此问题的任何人都有帮助。如果它稍微不正确,请告诉我,我可以更改它。但这就是我为解决这个问题所做的。
在 DateSet 上:
public void onDateSet(DatePicker view, int year, int month, int day) {
StringBuilder builder = new StringBuilder();
builder.append(day).append("-")
.append(month).append("-")
.append(year);
String text= builder.toString();
FragmentManager fragmanager = getSupportFragmentManager();
if(fragmanager.findFragmentByTag("fromdatePicker") != null) {
Log.d(TAG, "got here" + text);
fromdate.setText(text);
}
// if(view.getTag() == "todatePicker") {
if(fragmanager.findFragmentByTag("todatePicker") != null) {
todate.setText(text);
}
这样您就可以对多个调用使用同一个 dateListener,并根据在对话框中调用 show 时传递的标记适本地设置日期。
关于android - 如何从 DatePicker 对话框中为多个调用设置日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12514242/
我是一名优秀的程序员,十分优秀!