我正在尝试为 Android 应用程序创建一个列表。该应用程序有很多我必须发送的信息。我创建了一个 csv,然后按如下方式解析:
public String[] getArray() {
String[] array = new String[12497];
try {
AssetInputStream asset_stream = (AssetInputStream)getAssets().open("information.csv");
BufferedReader br = new BufferedReader(new InputStreamReader(asset_stream));
line = br.readLine();
int count = 0;
while(line != null) {
fields = line.split(",");
array[count] = fields[1];
line = br.readLine();
count++;
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return array;
}
我遇到的问题是,当我尝试从该数组创建列表时,出现了几个错误。对于 Intent 中的包来说太大了,所以我不能这样做,所以我尝试像这样访问全局变量:
public class myArrayList extends Activity {
int number, count = 0;
EditText edittext;
ListView listview;
Globals test = (Globals)getApplication();
String[] text = test.getArray();
int textlength = 0;
ArrayList<String> text_sort = new ArrayList<String>();
public void onCreate(Bundle savedInstanceState) {
因此,我不断收到无法实例化 Activity 组件信息错误:java.lang.nullpointerException。另外,由于编码的原因,我无法初始化 onCreate 内部的数组。它必须之前完成。我做错了什么以及如何才能完成这项工作?该数组必须是应用程序的一部分。谢谢。
最佳答案
为什么需要在 onCreate 之前完成它?这就是 Activity Lifecycle 的开始。
如果您希望在此之前完成,则需要在此之前找到可用的位置。
也许可以扩展 Application
类并从那里检索它?
在这种情况下什么是 null ?
关于java - ListView 和全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30202690/