2013-08-06 39 views
0

https://stackoverflow.com/a/9172615/2653579如何使用SharedPreferences讀取SD卡中的配置文件?

public class Calc extends Activity { 
public static final String PREFS_NAME = "MyPrefsFile"; 

@Override 
protected void onCreate(Bundle state){ 
    super.onCreate(state); 
    . . . 

    // Restore preferences 
    SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
    String ipAddress = settings.getString("IPAddress", ""); 
    int port = settings.getInt("port", 0); 
    int title = settings.getString("Title", ""); 
} 

我發現讀值的代碼從一個配置文件,我不能讓它來讀取SD卡中的文件。我試過這種方式:

static File GPSCfgFile = new File(Environment.getExternalStorageDirectory() 
      + "/Config/GPSLogService.cfg"); 
    public static final String PREFS_NAME = String.valueOf(GPSCfgFile); 

當我開始我的服務時,它意外停止。這是在logcat:

FATAL EXCEPTION: main 
GPSLogService.cfg.xml contains a path separator 

我怎樣才能使它從SD卡讀取該文件? 如果您使用的是XML配置文件,你可以看看這個鏈接,知道你可以做到這一點:

+0

我不認爲你可以讀取'將String.valueOf()'的文件。 –

+0

我注意到了。 :/ – Readdeo

回答

0

您可以使用該方法String.valueOf()有一個文件

http://developer.android.com/training/basics/network-ops/xml.html#instantiate

http://www.vogella.com/articles/AndroidXML/article.html

如果您使用的是純文本文件,你可以在這裏看看:

How can I read a text file from the SD card in Android?

當你正在閱讀您的配置文件,您必須保存在個人SharedPreferences每個值:

SharedPreferences prefs = getSharedPreferences(ConstantsUtils.PREFERENCES, 
      Context.MODE_PRIVATE); 
SharedPreferences.Editor editor = prefs.edit(); 
editor.putString("IPAddress", "Tag value"); 
editor.commit(); 
+0

謝謝。我怎樣才能把這個SharedPreferences變長,並在其他方法中使用它?我被困在這裏。 – Readdeo

+0

您可以使用您在您的問題中寫入的首選項SharedPreferences設置= getSharedPreferences(PREFS_NAME,0); String ipAddress = settings.getString(「IPAddress」,「」); – amatellanes