扩展类android.widget.datepicker时出错 [英] Error inflating class android.widget.datepicker
问题描述
我有一个显示datepicker的方法,当我使用android版本7时我收到错误
i have a promlem to showing datepicker, when i using android version 7 i getting error
android.view.InflateException: Binary XML file line #18: Binary XML file line #18: Error inflating class android.widget.DatePicker
Caused by: android.view.InflateException: Binary XML file line #18: Error inflating class android.widget.DatePicker
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.newInstance0(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:430)
at android.view.LayoutInflater.createView(LayoutInflater.java:645)
at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:717)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:785)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
at android.view.LayoutInflater.inflate(LayoutInflater.java:495)
at android.view.LayoutInflater.inflate(LayoutInflater.java:426)
at android.view.LayoutInflater.inflate(LayoutInflater.java:377)
at android.app.DatePickerDialog.<init>(DatePickerDialog.java:119)
at android.app.DatePickerDialog.<init>(DatePickerDialog.java:90)
at com.MyApps.aps.screen.FilteringFragment$SelectDateFragment.onCreateDialog(FilteringFragment.java:744)
当我使用Android版本少于7我的应用程序工作时找到
请帮帮我..
我尝试过:
这是我的代码
onCreateView
when i using android version less than 7 my Apps work find
please Help me..
What I have tried:
This is My Code
onCreateView
imgCal1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
iCal = 1;
DialogFragment newFragment = new SelectDateFragment();
newFragment.show(getFragmentManager(), "DatePicker");
}
});
SelectDateFragment
SelectDateFragment
public static class SelectDateFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final Calendar calendar = Calendar.getInstance();
int yy = calendar.get(Calendar.YEAR);
int mm = calendar.get(Calendar.MONTH);
int dd = calendar.get(Calendar.DAY_OF_MONTH);
return new DatePickerDialog(getActivity(), this, yy, mm, dd);
}
public void onDateSet(DatePicker view, int yy, int mm, int dd) {
populateSetDate(yy, mm + 1, dd);
}
public void populateSetDate(int year, int month, int day) {
if (iCal == 1) {
txtDate1.setText(month + "/" + day + "/" + year);
} else {
txtDate2.setText(month + "/" + day + "/" + year);
}
}
}
推荐答案
SelectDateFragment.onCreateDialog(FilteringFragment.java :744)
SelectDateFragment.onCreateDialog(FilteringFragment.java:744)
当我使用Android版本少于7我的应用程序工作时找到
请帮助我。 。
我尝试了什么:
这是我的代码< br $>
onCreateView
when i using android version less than 7 my Apps work find
please Help me..
What I have tried:
This is My Code
onCreateView
imgCal1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
iCal = 1;
DialogFragment newFragment = new SelectDateFragment();
newFragment.show(getFragmentManager(), "DatePicker");
}
});
SelectDateFragment
SelectDateFragment
public static class SelectDateFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final Calendar calendar = Calendar.getInstance();
int yy = calendar.get(Calendar.YEAR);
int mm = calendar.get(Calendar.MONTH);
int dd = calendar.get(Calendar.DAY_OF_MONTH);
return new DatePickerDialog(getActivity(), this, yy, mm, dd);
}
public void onDateSet(DatePicker view, int yy, int mm, int dd) {
populateSetDate(yy, mm + 1, dd);
}
public void populateSetDate(int year, int month, int day) {
if (iCal == 1) {
txtDate1.setText(month + "/" + day + "/" + year);
} else {
txtDate2.setText(month + "/" + day + "/" + year);
}
}
}
试试这个。
声明这些变量
Try this.
Declare these variables
private DateDialog dialog;
boolean click=false;
处理时 imgCal1
点击 onCreate
方法
Handle this when imgCal1
is clicked in onCreate
method
imgCal1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
click=true;
iCal = 1;
Dialog dialogFrg=dialog.getDialog();
if(dialogFrg!=null && dialogFrg.isShowing()) {
// no need to call dialog.show(ft, "DatePicker");
} else {
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
dialog.show(ft, "DatePicker");
}
}
});
之后只需加上这个
After that only add this
public static class DateDialog extends android.support.v4.app.DialogFragment implements DatePickerDialog.OnDateSetListener {
public DateDialog() {
}
public Dialog onCreateDialog(Bundle savedInstanceState) //display calender
{
final Calendar c=Calendar.getInstance();
int year=c.get(Calendar.YEAR);
month=c.get(Calendar.MONTH);
int day=c.get(Calendar.DAY_OF_MONTH);
return new DatePickerDialog(getActivity(),this,year, month,day);
}
public void onDateSet(DatePicker view,int yy, int month, int day)
{
populateSetDate(yy, mm + 1, dd);
}
public void populateSetDate(int year, int month, int day) {
if (iCal == 1) {
txtDate1.setText(month + "/" + day + "/" + year);
} else {
txtDate2.setText(month + "/" + day + "/" + year);
}
}
}
您的布局XML文件包含 DatePicker
widget?
What does your layout XML file look like that contains the DatePicker
widget?
这篇关于扩展类android.widget.datepicker时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!