2015-05-08 4 views
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) 
+1

удалить эту строку: 'список = value.getStringArrayList ("TEMP1")' и он будет работать – Blackbelt

+0

благодарственное вы его работа, но почему эта линия не работает? – farzad226

+0

'Bundle value = new Bundle();' создает новый Bundle, который не содержит ваш список – Blackbelt

ответ

0

Устранить:

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) 
Смежные вопросы