2015-04-17 51 views
2

我正在開發一個android應用程序。它只能在第一次運行時從用戶那裏獲取一些信息,然後應用程序將使用該信息進行工作。假設應用程序有5項活動,例如性別,身高,體重,出生日期,姓名,這將完成這項工作。所以當用戶第一次啓動應用程序時,他會輸入所有信息,之後用戶將永遠不會看到它們。創建一組只能在第一次運行的android輸入活動

我被困在這個話題上,我該如何創建它們。 請準確回答源代碼。

在此先感謝

+0

爲什麼每個信息都需要一個Activity?你可以創建一個帶有很多文本框的「活動」。 – ByteHamster

+0

你解決了嗎? – matty357

回答

0

檢查數據是否已經存在,否則提問:

String fileName = "UserData.txt"; 
String filepath = "MyFileStorage/StoredData"; 
try { 
File myExternalFile = new File(cxt.getExternalFilesDir(filepath), filename); 

if(myExternalFile.exists()) { 
    FileInputStream fis = new FileInputStream(myExternalFile); 
    DataInputStream in = new DataInputStream(fis); 
    BufferedReader br = new BufferedReader(new InputStreamReader(in)); 
    String strLine; 
    while ((strLine = br.readLine()) != null) { 
    myData = myData + strLine; 
    } 
    fis.close(); 
    br.close(); 
    in.close(); 
}else{ 
//must be first time so ask questions then save 
} 
} catch (IOException e) { 
    e.printStackTrace(); 
} 

那麼如果文件dosnt存在,得到的答案和寫入到文件;

String fileName = "UserData.txt"; 
String filepath = "MyFileStorage/StoredData"; 
File f= new File(cxt.getExternalFilesDir(filepath), fileName); 
f.createNewFile(); 
FileWriter writer = new FileWriter(f); 
writer.append("Name"+System.getProperty("line.separator") + "Gender"); 
writer.flush(); 
writer.close(); 

或者你可以有一個名爲Globals的類,它擴展了Application; 把變量存儲在該類中;

package ExamplePackage.YourPackage; 

public class Globals extends Application{ 
static String name=""; 
static int age = 0; 

public Globals() { 
    } 
} 

將應用程序標籤放在androidmanifest中;

<application 
    android:name=".Globals" 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" /> 
+0

我會嘗試使用這段代碼,然後看看它是否有效 –

+0

看看'OR'後面的部分,這是一種全局存儲變量的方式,以供整個應用生命週期使用,並且不需要文件。您可以使用該文件存儲信息,並在應用下次啓動時將其讀回。 – matty357