无法使用main函数将上下文从主活动传递到非活动



我有一个MainActivity class,在那里我实现了一个主函数。此主函数通过传递上下文来调用非活动类(无法实现)。在非活动类中,我想访问assets文件夹中的一个文件(这需要一个上下文,因此需要传递一个上下文),并将其打印在LogCat中。这就是我尝试的方式

主要活动:

public class MainActivity extends AppCompatActivity
{
    public static void main(String[] args)
    {
        DiseaseAlgo(this).Parser();//Error. Unable to pass context
        return;
    }
    //etc
}

非活动类别:

package com.iotaconcepts.aurum;
import android.content.Context;
import android.content.res.AssetManager;
import android.util.Log;
import java.io.FileReader;
import java.io.IOException;
public class DiseaseAlgo
{
    static Context mContext;
    public DiseaseAlgo(Context context)
    {
        mContext = context;
    }
    public static void Parser() throws IOException
    {
        AssetManager as=mContext.getAssets();
        String parse=as.open("symp.txt").toString();
        String[] xx=parse.split("t");
        for(String i:xx)
            Log.w("DiseaseAlgo", i);
    }
}

我无法弄清楚如何传递上下文并从此函数调用"DiseaseAlgo"方法。我不断得到:

程序包名称.MainActivity.this不能从静态内容中引用

我需要这个来检查我的文本解析的正确性,这是在LogCat上显示它的唯一方法。

问题是您使用的是静态函数中的单词this。由于函数是静态的,所以类可能有实例,也可能没有实例。什么在调用该函数?

如果您的活动实例正在调用Main(),则将其上下文(this)作为自变量传递,以便静态函数可以访问它

我猜Main()不是来自安卓的功能吧?通常,在main()函数中,您应该在传递对象之前初始化对象,所以this没有意义,但我不认为android是这样工作的。

相关内容

  • 没有找到相关文章

最新更新