2017-04-26 39 views
1

我试图让用户选择一个日期,当点击一个按钮时,它显示3个滚轮选择日,月和年,然后它将设置用户选择的任何文本视图,在当我点击按钮的时刻没有任何事情发生只是空的点击任何帮助将不胜感激。我将在下面插入代码。我在这行代码中收到错误。Android Studio Calendar Picker

fragment.show(getSupportFragmentManager(), "date"); 

日期选择器代码

public void datePicker(View view) { 
     DatePickerFragment fragment = new DatePickerFragment(); 
     fragment.show(getSupportFragmentManager(), "date"); 
    } 

    public void setDate(final Calendar calendar) { 
     final DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.MEDIUM); 
     ((TextView) findViewById(R.id.dateSet)).setText(dateFormat.format(calendar.getTime())); 
    } 

    @Override 
    public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) { 
     Calendar cal = new GregorianCalendar(year, month, dayOfMonth); 
     setDate(cal); 
    } 

    public static class DatePickerFragment extends DialogFragment { 

     public Dialog onCreateDialog(Bundle savedInstanceState) { 
      final Calendar c = Calendar.getInstance(); 
      int year = c.get(Calendar.YEAR); 
      int month = c.get(Calendar.MONTH); 
      int day = c.get(Calendar.DAY_OF_MONTH); 

      return new DatePickerDialog(getActivity(), 
        (DatePickerDialog.OnDateSetListener) 
          getActivity(), year, month, day); 
     } 


     public void show(FragmentManager supportFragmentManager, String date) { 
     } 
    } 

} 

按钮及TextView的代码:

<TextView 
     android:text="" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/dateSet" 
     android:layout_above="@+id/Category" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_marginBottom="11dp" /> 

    <Button 
     android:text="Pick Date" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_above="@+id/dateSet" 
     android:layout_alignLeft="@+id/incomeDate" 
     android:layout_alignStart="@+id/incomeDate" 
     android:layout_marginBottom="17dp" 
     android:onClick="datePicker" 
     android:id="@+id/picDate" /> 

错误:

Error:(135, 17) error: no suitable method found for show(android.support.v4.app.FragmentManager,String) 
method DialogFragment.show(android.app.FragmentManager,String) is not applicable 
(argument mismatch; android.support.v4.app.FragmentManager cannot be converted to android.app.FragmentManager) 
method DialogFragment.show(FragmentTransaction,String) is not applicable 
(argument mismatch; android.support.v4.app.FragmentManager cannot be converted to FragmentTransaction) 
+0

请记住,计算机完全按照您的说法进行操作,仅此而已。在这种情况下,'show()'什么也不做。 –

+0

我忘了删除,它给我一个错误,直到我插入那个病重做问题对不起 – chris123

+0

我建议你学习如何动态地显示一个片段。 –

回答

1

的错误是有点混乱,特别是如果你只注意到班级n并且忽略他们的包裹。问题是支持库使用与本机API相同的类名称。要解决该问题,请仔细检查应该使用支持库的类的导入。例如

import android.support.v4.app.DialogFragment 

很可能是因为

import android.app.DialogFragment 

这是从本机API的类。即使这两个类具有相同的名称,但它们是两种不同的类型,因为它们位于不同的包中。

+0

所以我应该检查看它是否使用该导入或不同的导入? – chris123

+0

你对它的工作 – chris123

+0

@ chris123做了一个小的编辑,以澄清不同的进口。 –