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