android-fragments 使getContentResolver()在扩展Fragment类的类中工作

zqry0prt  于 2022-11-13  发布在  Android
关注(0)|答案(7)|浏览(238)

我的想法是使用两个片段,第一个片段显示联系人列表,第二个片段显示在上面的片段中选择的联系人的详细信息。
由于上下文问题,我用来扩展Fragment类的类不允许我使用getContentResolver()方法。现在我尝试获取扩展Fragment类的同一个类中的联系人,并使用它在列表视图中显示其详细信息。在经历了一些旧的解决方案后,我找到了创建一个函数并将上下文作为参数传递给它的方法,但问题是我不“我不需要从任何其他扩展Activity的类中调用它。我想从扩展Fragment的同一个类中调用它。
我该怎么做呢?
任何帮助都将不胜感激。

fae0ux8s

fae0ux8s1#

尝试将此代码添加到以前的活动中:

// a static variable to get a reference of our application context
public static Context contextOfApplication;
public static Context getContextOfApplication()
{
return contextOfApplication;
}

在同一个活动中,在onCreate方法中添加以下行:

contextOfApplication = getApplicationContext();

在您的片段中,您可以使用以下命令访问此内容:

Context applicationContext = YourActivity.getContextOfApplication();
applicationContext.getContentResolver();
6uxekuva

6uxekuva2#

使用getter获取应用程序上下文不起作用。

getActivity().getApplicationContext().getContentResolver().
k3bvogb1

k3bvogb13#

使用android.support.v4.app.Fragment时:
getActivity().getContentResolver()

gorkyyrv

gorkyyrv4#

我也遇到过类似的碎片问题,但我尝试了

(getContext().getContentResolver(), filePath);
yzuktlbb

yzuktlbb5#

对于Kotlin用户-

activity!!.contentResolver

"但对我有用的是-"

requireActivity().contentResolver

你可以用任何对你有用的东西。

xoefb8l8

xoefb8l86#

if (requestCode == GALLERY) {

        if (resultCode==RESULT_OK){
            if (data!=null) {
                 Uri uri = data.getData();
                BitmapFactory.Options options = new BitmapFactory.Options();
                options.inJustDecodeBounds = true;
                try {
                    BitmapFactory.decodeStream(getActivity().getContentResolver().openInputStream(uri), null, options);
                    options.inSampleSize = calculateInSampleSize(options, 100, 100);
                    options.inJustDecodeBounds = false;
                    Bitmap image = BitmapFactory.decodeStream(getActivity().getContentResolver().openInputStream(uri), null, options);
                    //imageofpic.setImageBitmap(image);

                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                }
            }else {
                Toast.makeText(getActivity(), "Cancelled",
                        Toast.LENGTH_SHORT).show();
            }
}
vawmfj5a

vawmfj5a7#

像这样编辑。

Cursor contctCursorVar = getContext().getContentResolver().query(contctDataVar, null,

相关问题