1
Я пытаюсь использовать пакет для сохранения/получения списка массивов, но при запуске я получаю ниже ошибки. я получаю значение от другого действия в качестве счета и проверяя счет i, изменяя значение arraylist, затем сохраняю список массивов с помощью метода save()
, и, наконец, я хочу получить мой сохраненный arraylist, но он не работает.Ошибка при получении значения arraylist в Android
public class Favorites_page extends Activity implements OnClickListener {
String on="on",off="off";
static TextView tv_fav1,tv_fav2,tv_fav3,tv_fav4,tv_fav5,tv_fav6,tv_fav7,tv_favoritetittle;
ArrayList<String> list = new ArrayList<String>(3);
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.favorites);
boolean check = list.isEmpty();
if(check){
list.add(0,off);list.add(1,off);list.add(2,off);
save();
}
SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", MODE_PRIVATE);
int score = pref.getInt("score", 0);
//
tv_fav1= (TextView) findViewById(R.id.tv_fav1);
tv_fav2= (TextView) findViewById(R.id.tv_fav2);
tv_fav3= (TextView) findViewById(R.id.tv_fav3);
tv_fav4= (TextView) findViewById(R.id.tv_fav4);
tv_fav5= (TextView) findViewById(R.id.tv_fav5);
tv_fav6= (TextView) findViewById(R.id.tv_fav6);
tv_fav7= (TextView) findViewById(R.id.tv_fav7);
tv_favoritetittle=(TextView) findViewById(R.id.tv_favoritetittle);
tv_fav1.setOnClickListener(this);
tv_fav2.setOnClickListener(this);
tv_fav3.setOnClickListener(this);
tv_fav4.setOnClickListener(this);
tv_fav5.setOnClickListener(this);
tv_fav6.setOnClickListener(this);
tv_fav7.setOnClickListener(this);
switch (score) {
case 99:
if(score == 99){
tv_favoritetittle.setText("Nothing");
}
break;
case 100:
if(score == 100){
//tv_fav7.setVisibility(View.VISIBLE);
list.set(0,on);
save();
}
break;
case 101:
if(score == 101){
//tv_fav6.setVisibility(View.VISIBLE);
list.set(1,on);
save();
}
break;
case 102:
if(score == 102){
tv_fav5.setVisibility(View.VISIBLE);
list.set(2,on);
save();
}
break;
default:
break;
}
Bundle value= new Bundle();
list=value.getStringArrayList("temp1");
// i recive error in below line......
String pos=list.get(0);
if (pos==on) {
tv_fav7.setVisibility(View.VISIBLE);
}
} // marbot be Content
public void save()
{
Bundle value= new Bundle();
value.putStringArrayList("temp1", list);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
} // marbot be Activity
и это LogCat:
05-08 14:58:24.081: E/AndroidRuntime(972): FATAL EXCEPTION: main
05-08 14:58:24.081: E/AndroidRuntime(972): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.falconteam.zekr/com.falconteam.zekr.Favorites_page}: java.lang.NullPointerException
05-08 14:58:24.081: E/AndroidRuntime(972): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
05-08 14:58:24.081: E/AndroidRuntime(972): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
05-08 14:58:24.081: E/AndroidRuntime(972): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
05-08 14:58:24.081: E/AndroidRuntime(972): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
05-08 14:58:24.081: E/AndroidRuntime(972): at android.os.Handler.dispatchMessage(Handler.java:99)
05-08 14:58:24.081: E/AndroidRuntime(972): at android.os.Looper.loop(Looper.java:123)
05-08 14:58:24.081: E/AndroidRuntime(972): at android.app.ActivityThread.main(ActivityThread.java:3683)
05-08 14:58:24.081: E/AndroidRuntime(972): at java.lang.reflect.Method.invokeNative(Native Method)
05-08 14:58:24.081: E/AndroidRuntime(972): at java.lang.reflect.Method.invoke(Method.java:507)
05-08 14:58:24.081: E/AndroidRuntime(972): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
05-08 14:58:24.081: E/AndroidRuntime(972): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
05-08 14:58:24.081: E/AndroidRuntime(972): at dalvik.system.NativeStart.main(Native Method)
05-08 14:58:24.081: E/AndroidRuntime(972): Caused by: java.lang.NullPointerException
05-08 14:58:24.081: E/AndroidRuntime(972): at com.falconteam.zekr.Favorites_page.onCreate(Favorites_page.java:101)
05-08 14:58:24.081: E/AndroidRuntime(972): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
05-08 14:58:24.081: E/AndroidRuntime(972): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
удалить эту строку: 'список = value.getStringArrayList ("TEMP1")' и он будет работать – Blackbelt
благодарственное вы его работа, но почему эта линия не работает? – farzad226
'Bundle value = new Bundle();' создает новый Bundle, который не содержит ваш список – Blackbelt