其他分享
首页 > 其他分享> > android – 如何在不传递上下文的情况下从另一个类调用方法?

android – 如何在不传递上下文的情况下从另一个类调用方法?

作者:互联网

我目前正在尝试从实用程序类调用一个方法,该方法将引用为此实用程序方法创建的新游标.不幸的是,我的新类不会让我在没有上下文的情况下创建游标.我已经尝试了许多从调用活动传递上下文的方法,但在大多数情况下获取空指针异常.

这是我的代码的一部分:

findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                        Tools.pickRandomItem();

                    }
});

并在工具类中:

     public static void pickRandomItem() {   

    Cursor cur = getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, 
               null, null,MediaColumns.TITLE + " ASC");




}

使用上面的代码,它会在getContentResolver()上抛出一个错误,并且我为传递上下文所做的所有尝试都失败了.

我对Android编程很新,并不完全理解上下文的概念.您将提供的任何帮助将不胜感激!

解决方法:

创建一个为您的项目扩展Application的类(您必须在Manifest中声明它),在Application中创建一个

private static MyApplication app

在它的onCreate()中将它分配给字段

app = this;

并做一个

public static MyApplication get()

在里面.当您需要上下文时,您可以使用

MyApplication.get()

标签:android,android-context
来源: https://codeday.me/bug/20191002/1841282.html