しばらくの間、これに苦労しています。基本的に、このリストがさまざまなアクティビティでアクセスできることを期待して、単純なリンクリストを作成するようにアプリケーション クラスを拡張しました。しかし、必要なときにリンクリストから情報を取得できないようです。
これが可能であるかどうかはわかりませんが(なぜそうならないのかわかりませんが)、リンクリストを処理するときに愚かな間違いを犯しているだけなのか.
アプリケーション クラスの拡張 (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 クラスに文字列変数が含まれるようにスクリプトを変更すると、上記のコード (いくつかの変更を加えたもの) が正常に機能するため、そのリストの内容にアクセスできない理由がわかりません。では、なぜ変数にはアクセスできるのに、リンクされたリストにはアクセスできないのでしょうか?
ありがとう