无法使用主函数将上下文从主 activity 传递到非 activity
Unable to pass context from main activity to non-activity using main function
我有一个MainActivity class
,我在其中实现了一个主要功能。这个main函数调用了一个非activity class通过传递上下文(无法实现)。在非 activity class 中,我想从 assets 文件夹访问一个文件(这需要一个上下文,因此传递一个)并在 LogCat 中打印它。这就是我正在尝试的方式
主要活动:
public class MainActivity extends AppCompatActivity
{
public static void main(String[] args)
{
DiseaseAlgo(this).Parser();//Error. Unable to pass context
return;
}
//etc
}
非活动 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);
}
}
我不知道如何传递上下文并从此函数调用 'DiseaseAlgo' 方法。我不断收到:
package name.MainActivity.this cannot be referenced from static content
我需要这个来检查我的文本解析的正确性,这是在 LogCat.
上显示它的唯一方法
问题是您正在使用静态函数中的单词 this
。由于该函数是静态的,因此 class 可能有也可能没有实例。什么在调用该函数?
如果您的 activity 实例正在调用您的 Main()
,则将其上下文 (this
) 作为参数传递,以便静态函数可以访问它。
我猜 Main()
不是来自 android 的函数,对吧?通常在 main()
函数中你应该在传递它们之前初始化对象所以 this
没有意义,但我不认为 android 那样工作。
我有一个MainActivity class
,我在其中实现了一个主要功能。这个main函数调用了一个非activity class通过传递上下文(无法实现)。在非 activity class 中,我想从 assets 文件夹访问一个文件(这需要一个上下文,因此传递一个)并在 LogCat 中打印它。这就是我正在尝试的方式
主要活动:
public class MainActivity extends AppCompatActivity
{
public static void main(String[] args)
{
DiseaseAlgo(this).Parser();//Error. Unable to pass context
return;
}
//etc
}
非活动 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);
}
}
我不知道如何传递上下文并从此函数调用 'DiseaseAlgo' 方法。我不断收到:
package name.MainActivity.this cannot be referenced from static content
我需要这个来检查我的文本解析的正确性,这是在 LogCat.
上显示它的唯一方法问题是您正在使用静态函数中的单词 this
。由于该函数是静态的,因此 class 可能有也可能没有实例。什么在调用该函数?
如果您的 activity 实例正在调用您的 Main()
,则将其上下文 (this
) 作为参数传递,以便静态函数可以访问它。
我猜 Main()
不是来自 android 的函数,对吧?通常在 main()
函数中你应该在传递它们之前初始化对象所以 this
没有意义,但我不认为 android 那样工作。