我已经为此苦苦挣扎了一段时间了。基本上我已经扩展了应用程序类,以便它创建一个简单的链接列表,希望该列表可以跨各种 Activity 访问。但是当我需要它时似乎无法从链接列表中获取信息。
我不确定这是否可能(尽管我不明白为什么不可能),或者我是否只是在处理链接列表时犯了一些愚蠢的错误。
扩展应用程序类(GlobalData)
package com.example.testing;
import java.util.LinkedList;
import android.app.Application;
import android.widget.Toast;
public class GlobalData extends Application {
public static LinkedList<String> EmployeeList;
@Override
public void onCreate(){
super.onCreate();
createLinkedList();
}
public void createLinkedList(){
// create a linked list
LinkedList<String> EmployeeList = new LinkedList<String>();
String emp1 ="john", emp2="adam";
EmployeeList.add(emp1);
EmployeeList.add(emp2);
String boo;
boo = EmployeeList.getFirst();
//This works, displays the name ok.
Toast.makeText(getApplicationContext(), "("+boo+")" ,Toast.LENGTH_LONG).show();
}
}
我希望能够访问链接列表的主要位置。
package com.example.testing;
import android.os.Bundle;
import android.app.Activity;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
protected GlobalData globalData;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Get the application instance
globalData = (GlobalData)getApplication();
String boo;
boo = GlobalData.EmployeeList.getFirst();
//This doesn't work & im not sure why.
Toast.makeText(getApplicationContext(), "("+boo+")" ,Toast.LENGTH_LONG).show();
}
}
可能应该提到,我刚刚开始接触这些东西,所以如果这是一个完全愚蠢的问题,我深表歉意。
我不明白为什么我无法访问该列表的内容,如果我修改脚本以便 GlobalData 类包含一个字符串变量,上面的代码(经过一些修改)可以正常工作。那么为什么变量可以访问而链表却不能访问呢?
谢谢
最佳答案
在这一行中,您将创建列表的一个新实例,而不是使用您作为类成员创建的实例:
LinkedList<String> EmployeeList = new LinkedList<String>();
只需将此行更改为:
EmployeeList = new LinkedList<String>();
关于java - Android:从主 Activity 访问应用程序类链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14777675/