java - Android:从主 Activity 访问应用程序类链表

标签 java android linked-list

我已经为此苦苦挣扎了一段时间了。基本上我已经扩展了应用程序类,以便它创建一个简单的链接列表,希望该列表可以跨各种 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/

相关文章:

java - Spring 数据 : How to write a record in join table for unidirectional one-to-may?

java - 如何在弹出窗口中直接显示动态添加的项目,而不需要双击?

java - 访问不同端口中的 spring security,获取字符串形式的原理数据 'anonymousUser'

java - 使用以 String 数组作为元素的 ArrayList 填充 ListView

android - 实现 Parcelable 的正确方法

java - 循环单链表

java - 无法在 SimpleLayout 中加载 Composite

android - 自定义 Drawable 边框与 App Bar Layout Header 重叠

c - 预期的声明说明符

c - 从列表中删除节点时出现问题