Android 如何在循环水中使用波斯炉

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

i使用特定的日期库()

现在我想在“回收器”视图中的按钮中使用它

现在我的问题是我必须在库代码中定义两个选项:

1-我应该参考活动

2-我需要使用getSupport FragmentManager()

但是这个页面已经扩展了Recycler View.Adapter,我不知道如何在这个页面上调用这两个选项

RecycleServiceAdapter页面:

                        PersianCalendar persianCalendar = new PersianCalendar();

                    DatePickerDialog datePickerDialog = DatePickerDialog.newInstance( StudentList.this ,
                            persianCalendar.getPersianYear() ,
                            persianCalendar.getPersianMonth() ,
                            persianCalendar.getPersianDay());




                    datePickerDialog.show( getSupportFragmentManager() , "datePickerDialog" );
在这些图片中,你可以很容易地理解我:


您的活动必须实现
TimePickerDialog.OnTimeSetListener
并实现Abstract方法e
onTimeSet

    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();
}