我有MainActivity class
我已经实现了一个主要功能。此main函数通过传递上下文(无法实现)来调用非活动类。在非活动类中,我想从assets文件夹访问一个文件(需要一个上下文,因此传递一个文件)并将其打印在LogCat中。这就是我尝试这样做的方式
MainActivity:
public class MainActivity extends AppCompatActivity
{
public static void main(String[] args)
{
DiseaseAlgo(this).Parser();//Error. Unable to pass context
return;
}
//etc
}
NonActivity Class:
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);
}
}
我无法弄清楚如何传递背景并致电疾病导演'来自这个功能的方法。我一直在说:
包名称 .MainActivity.this无法从静态内容中引用
我需要这个来检查文本解析的正确性,这是在LogCat上显示它的唯一方法。
答案 0 :(得分:2)
问题是你在静态函数中使用了this
这个词。由于该函数是静态的,因此该类可能有也可能没有实例。什么叫这个功能?
如果您的活动实例正在调用您的Main()
,请将其上传(this
)作为争论,以便静态函数可以访问它。
我猜Main()
不是来自android的功能吗?在main()
函数中的Normaly你应该在传递它们之前初始化对象,所以this
没有意义,但我不认为android是那样工作的。