我想在手机的内部存储空间中保存三个字符串。但是在获得输出时我遇到了问题。以下是该计划。我刚刚写下了重要的部分而不是其他不重要的代码。
在这三个字符串中,string1在Spinner
中传递(此处未显示,因为它对我来说不是问题)。
现在,我想在string2
和textview1
string3
上加载textview2
。
我得到的输出是textview1
string2
和string3
以及textview2
,我同时得到string2
和string3
。
有人可以帮助我string2
textview1
和string3
textview2
上的 EditText filename, entry, pass;
String FILENAME, JOUR, PASSWORD;
filename = (EditText) findViewById(R.id.editText3);
entry = (EditText) findViewById(R.id.editText1);
pass = (EditText) findViewById(R.id.editText2);
public void onClick(View arg0) {
// TODO
Auto-generated method stub
FILENAME = filename.getText().toString();
if (FILENAME.contentEquals("")){
FILENAME = "passwordprotect";
}
JOUR = entry.getText().toString();
PASSWORD = pass.getText().toString();
try {
FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(JOUR.getBytes());
fos.write(PASSWORD.getBytes());
fos.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
。
PS:你看到输出上的微调器,这是我的输出。我只是留在那里让你明白我在旋转器中已经有了string1。
Write.java
TextView entry, passentry;
entry = (TextView)findViewById(R.id.textView1);
passentry = (TextView)findViewById(R.id.textView2);
private void openFile(String selectFile) {
// TODO Auto-generated method stub
String value = "";
FileInputStream fis;
try {
fis = openFileInput(selectFile);
byte[] input = new byte[fis.available()];
while(fis.read(input) != -1){
value += new String(input);
}
fis.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
entry.setText(value);
passentry.setText(value);
}
Read.java
Spinner->string1
textview1->string2string3
textview2->string2string3
我得到了输出。
{{1}}
答案 0 :(得分:1)
确定要分割这两个字符串的内容。
根据您在这些文本视图中存储的文本类型,不同的东西可能就足够了。例如,您可以简单地使用换行符来分隔两者。然后,您可以将字符串value
拆分为两部分,将每个部分存储在相应的文本视图中。
基本上以某种方式划分文件中的字符串,然后将value
字符串拆分为两部分,并将每个部分存储到相应的文本视图中。
另一方面,考虑到您只是存储字符串,您是否考虑过使用Android Preferences?
答案 1 :(得分:0)
这是写和读
public static void read(Context context , String file , TextView tv ) {
try {
InputStream stream = context.openFileInput(file);
if(stream != null ) {
InputStreamReader inputStreamReader = new InputStreamReader(stream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String receiveString = "";
StringBuffer stringBuffer = new StringBuffer();
while ((receiveString = bufferedReader.readLine()) != null) {
stringBuffer.append(receiveString);
}
tv.setText(stringBuffer);
stream.close();
}
}catch (FileNotFoundException e){}
catch (IOException e){}
}
public static void write(Context context , String file ,String str , EditText et) {
str = et.getText().toString();
try {
FileOutputStream fos = context.openFileOutput(file, 0);
fos.write(str.getBytes());
fos.close();
}catch(IOException e){
e.printStackTrace();
}
}
现在像你那样在你的班级上返回这个方法
write(this , FILENAME1 , JOUR, entry);
write(this , FILENAME2 , PASSWORD, pass);
read(this , FILENAME1 , entry);
read(this , FILENAME2 , passentry);