2011-03-14 77 views
2

中的应用程序时,获得相同的复选框状态我有一个列表视图。当我检查时,我收到复选框。 但我想重新启动应用程序时得到相同的状态。如果有什么办法,请回复我。 我对android非常陌生。 我的代码如下:当我重新启动Android

protected void onListItemClick(ListView l, View v, int position, long id) { 
    super.onListItemClick(l, v, position, id); 


    getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 
//I am getting status of check box here. If I click on file check box is appearing to me. //I want to be store always for true. 

    String keyword = value[position]; 
    mediaPlayer.reset();   
    try 
    { 

     mediaPlayer.setDataSource("/sdcard/"+keyword+".mp4"); 

     mediaPlayer.prepare(); 
     mediaPlayer.start();        

    } 
    catch(Exception e) 
    { 
     e.printStackTrace(); 
    } 
} 

在此先感谢。

+0

请尝试下面的链接http://developer.android.com/guide/topics/data/data-storage.html#pref – ingsaurabh

回答

1

即使您的应用程序关闭,您也可以使用SharedPreference来保留您的值。在常量文件中使用默认值。

例如:

创建一个用于存储所有SharedPreferences的类。

在这种给予,

private static SharedPreferences sharedPref;  
public static final String PREFERENCE_DATA = "some data"; 

内部构造给予,

sharedPref = PreferenceManager.getDefaultSharedPreferences(context); 

添加每个优先值的setter/getter方法。

public static void setPreferenceData(String data) { 
     if (sharedPref != null) { 
      Editor editor = sharedPref.edit(); 
      editor.putString(PREFERENCE_DATA, data); 
      editor.commit(); 
     } 
    } 

public static String getPreferenceData() { 
    String data = "data"; 
    if (sharedPref != null) { 
     status = sharedPref.getString(PREFERENCE_DATA,your variable name stored in constants); 
    } 
    return data; 
} 

所以,当你想设置的任何数据,使用setPreferenceData当你想获取值使用getPreferenceData

+0

感谢您的宝贵答案,请你给一些更详细的。 – Shekhar

1

您需要将复选框的状态保存在活动的onPause方法中。在onPause被称为后作为Activity Documentations

描述要保存选中的项目,系统可以在没有任何进一步的警告关闭应用程序你的onPause方法会是这个样子:

@Override 
protected void onPause() { 
    super.onPause(); 
    long[] checkedBoxes = getListView.getCheckedItemIds(); 
    setPreferenceData(checkedBoxes); 
} 

你只需要修改马修斯以允许您保存长阵列的方式编码。

现在,您可以从onCreate方法中的sharedPreferences文件中获取这些值,并在您的Adapter代码中相应地设置复选框。

+0

可以请你给我更多的澄清...我是非常新的android ...我没有得到它... – Shekhar

+0

亲爱的Janusz感谢您的回复,但我没有得到它的正确。 可否请你给我关于这个问题的深度信息。 public class AndroidExplorer1 extends ListActivity { \t/**当活动首次创建时调用。 */ \t static String [] value; \t MediaPlayer mediaPlayer = new MediaPlayer(); \t \t static int i = 0; \t public void onCreate(Bundle icicle){ \t \t super.onCreate(icicle); \t \t \t \t Bundle b = getIntent()。getExtras(); \t \t \t value = b.getStringArray(“a1”); } 使用此活动我有onListItemClick方法。 在此先感谢 – Shekhar