【发布时间】:2014-09-17 14:02:43
【问题描述】:
我有以下情况: 我有一个对话框。在这个作为片段的对话框中,我有一个按钮。此 Button 调用 DatePickDialog (DatePickFragment)。如果我设置日期,方法
onDateSet(DatePicker view, int year, int month, int day)
被调用,如果我是正确的。 (如果没有,请告诉我!)。现在我想将按钮的文本更改为日期。我已经有一个将日期转换为字符串的方法。但我无法弄清楚我是如何从 onDateSet 方法到 xml 文件中的 Button 的...... 我不能使用 findViewById。我以为我可以使用视图(DatePicker),但我不知道如何...
DatePicker 的 Java 文件位于单独的包(工具)中。如果在其他地方需要,最好重用此方法。但这对我来说并不那么重要。
更多代码: DatePickerFragment.java
package com.domain.app.tools;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.os.Bundle;
import android.widget.DatePicker;
import java.util.Calendar;
public class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener
{
@Override
public Dialog onCreateDialog(Bundle savedInstanceState)
{
final Calendar myCalendar = Calendar.getInstance();
int year = myCalendar.get(Calendar.YEAR);
int month = myCalendar.get(Calendar.MONTH);
int day = myCalendar.get(Calendar.DAY_OF_MONTH);
return new DatePickerDialog(getActivity(), this, year, month, day);
}
@Override
public void onDateSet(DatePicker view, int year, int month, int day)
{
//Here I am stuck
dateToString(year, month, day);
}
public String dateToString(int year, int month, int day)
{
StringBuffer sb = new StringBuffer();
sb.append(day + "." + month + "." + year);
return sb.toString();
}
}
dialog_create.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:id = "@+id/dialog_create"
android:layout_width = "match_parent"
android:layout_height = "match_parent"
android:background="@color/create_bg_1"
tools:context = ".CreateDialogFragment"
>
<EditText
android:id = "@+id/dialog_create_name"
android:layout_width = "match_parent"
android:layout_height = "@dimen/textFieldHight"
android:text = "@string/create_name"
android:background="@color/white"
android:layout_marginTop="4dp"
android:layout_marginBottom="4dp"
android:layout_marginLeft="4dp"
android:layout_marginRight="4dp"
/>
<Button
android:layout_width = "wrap_content"
android:layout_height = "@dimen/textFieldHight"
android:ems = "6"
android:text = "@string/date"
android:background="@color/white"
android:id = "@+id/create_date_button"
android:onClick = "pickDate"
android:layout_below = "@id/dialog_create_name"
/>
</RelativeLayout>
MainActivity.java - 部分
public class MainActivity extends Activity implements HomeFragment.OnFragmentInteractionListener
{
CreateDialogFragment createDialogFragment;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
homeFragment = new HomeFragment();
fragmentManager.beginTransaction().add(R.id.mainFrame, homeFragment).commit();
findViewById(R.id.bottomButton_home).setBackgroundResource(R.drawable.ic_home);
}
public void openCreate(View view)
{
createDialogFragment = new CreateDialogFragment();
createDialogFragment.show(fragmentManager, "TEST");
updateSelectedButton(3);
}
public void pickDate(View v)
{
DialogFragment datePicker = new DatePickerFragment();
datePicker.show(getFragmentManager(), String.format(getResources().getString(R.string.pickDate)));
((EditText) v).setText();//Here I am stuck
}
[...]
}
【问题讨论】:
-
你能粘贴更多代码吗?
-
我编辑了这个问题,所以现在有相关的代码示例......
标签: java android date datepicker