【发布时间】:2015-11-27 22:24:24
【问题描述】:
我有一个MainActivity class,在那里我实现了一个主要功能。此主函数通过传递上下文(无法实现)来调用非活动类。在非活动类中,我想从资产文件夹访问一个文件(这需要一个上下文,因此需要传递一个)并将其打印在 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 上显示它的唯一方法。
【问题讨论】:
-
这真的不是办法,如果你有问题调试-解决它,不要添加另一个问题。
-
如果这不是要走的路,请建议另一种方法,如果您没有解决方案,请不要对问题投反对票。谢谢
-
实际上,我没有投反对票。我并没有尝试解决您的问题,因为如果您尝试为 Android 开发,您应该尽量了解自己在做什么。
-
你知道我该如何解决这个问题吗?
标签: java android android-activity android-assets