Android 如何在循环水中使用波斯炉
i使用特定的日期库() 现在我想在“回收器”视图中的按钮中使用它 现在我的问题是我必须在库代码中定义两个选项: 1-我应该参考活动 2-我需要使用getSupport FragmentManager() 但是这个页面已经扩展了Recycler View.Adapter,我不知道如何在这个页面上调用这两个选项 RecycleServiceAdapter页面:Android 如何在循环水中使用波斯炉,android,android-studio,android-fragments,android-recyclerview,android-datepicker,Android,Android Studio,Android Fragments,Android Recyclerview,Android Datepicker,i使用特定的日期库() 现在我想在“回收器”视图中的按钮中使用它 现在我的问题是我必须在库代码中定义两个选项: 1-我应该参考活动 2-我需要使用getSupport FragmentManager() 但是这个页面已经扩展了Recycler View.Adapter,我不知道如何在这个页面上调用这两个选项 RecycleServiceAdapter页面: PersianCalendar persianCalendar = new PersianC
PersianCalendar persianCalendar = new PersianCalendar();
DatePickerDialog datePickerDialog = DatePickerDialog.newInstance( StudentList.this ,
persianCalendar.getPersianYear() ,
persianCalendar.getPersianMonth() ,
persianCalendar.getPersianDay());
datePickerDialog.show( getSupportFragmentManager() , "datePickerDialog" );
在这些图片中,你可以很容易地理解我:
您的活动必须实现
TimePickerDialog.OnTimeSetListener
并实现Abstract方法eonTimeSet
:
public class StudentList extends AppCompatActivity implements TimePickerDialog.OnTimeSetListener {
@Override
public void onTimeSet(TimePickerDialog view, int hourOfDay, int minute, int second) {
}
}
和内部onClick
DatePickerDialog datePickerDialog = DatePickerDialog.newInstance((((StudentList)view.getContext()), persianCalendar.getPersianYear(),
persianCalendar.getPersianMonth(),
persianCalendar.getPersianDay());
或:
创建适配器实例时,可以尝试传递活动的上下文:
//Code in your Activity
MyAdapter myAdapter = new MyAdapter(this, ...);
您的适配器:
private Context context;
public MyAdapter(Context context, ...){
this.context = context;
//Rest of the constructor...
}
通过这样做,您可以添加以下内容:
datePickerDialog.show(context.getSupportFragmentManager(), "datePickerDialog");
您只需要在构造函数中传递一个活动上下文。确保从活动调用新适配器(this,…),从片段调用新适配器(getActivity(),…)
private Context context;
@Override
public void onClick(View v) {
FragmentManager manager = ((Activity) context).getFragmentManager();
FragmentManager manager = ((AppCompatActivity)context).getSupportFragmentManager();
}
尝试此操作请将代码添加为文本,而不是图像/屏幕截图。现在可以看到代码您应该将代码从适配器中移出,这是错误的。使用委托模式解决您的问题。您所说的方式没有问题,但我的第一个问题是,我不能将StudentList Activity@Android Geekcan u调用。请共享完整的代码StudentList Activity我已经按照您所说的方式做了,但问题尚未解决@Xabincoffee您所说的方式没有问题,但我的第一个问题是,我不能调用StudentList Activity@B.MReplace
StudentList。这是带有((StudentList)view.getContext()的)
您所说的方式没有问题,但我的日期库只能使用:DatePickerDialog.newInstance@B.MWich library您正在使用吗?这种方式是正确的,但我想在RecyclerView的AlertDialog中的文本视图中显示日期现在我如何在它们之间进行通信(StudentList)?
private Context context;
@Override
public void onClick(View v) {
FragmentManager manager = ((Activity) context).getFragmentManager();
FragmentManager manager = ((AppCompatActivity)context).getSupportFragmentManager();
}