2014-03-31 78 views
0

是否有可能将多个字符串值存储在内部存储器中。如果可能意味着请提供一种通用语法来将多个字符串值存储在内部存储器中。是否可以在内部存储中存储多个字符串值?

+0

通过倍数?你的意思是这么多的数据? – BlackPearl

+0

是的..需要一次又一次地存储值... – user3468596

+0

也许你的意思是:R.string.X是指基于值文件夹的不同字符串?是。 –

回答

0

作为一个例子

使布局如下

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity" > 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="182dp" 
     android:onClick="save" 
     android:text="@string/save" /> 

    <Button 
     android:id="@+id/button2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/button1" 
     android:layout_alignRight="@+id/button1" 
     android:layout_below="@+id/button1" 
     android:layout_marginTop="46dp" 
     android:onClick="read" 
     android:text="@string/read" /> 

    <EditText 
     android:id="@+id/editText1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/button1" 
     android:layout_alignParentTop="true" 
     android:layout_marginTop="23dp" 
     android:ems="10" 
     android:inputType="textMultiLine" > 

     <requestFocus /> 
    </EditText> 

</RelativeLayout> 

和如下

package com.example.storage; 

import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.io.InputStreamReader; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.View; 
import android.widget.EditText; 
import android.widget.Toast; 

public class MainActivity extends Activity { 

    private EditText et; 
    private String data; 
    private String file = "mydata"; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     et = (EditText)(findViewById(R.id.editText1)); 

    } 

    public void save(View view){ 
     data = et.getText().toString(); 
     try { 
     FileOutputStream fOut = openFileOutput(file,MODE_WORLD_READABLE); 
     fOut.write(data.getBytes()); 
     fOut.close(); 
     Toast.makeText(getBaseContext(),"file saved", 
     Toast.LENGTH_SHORT).show(); 
     } catch (Exception e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
     } 
    } 
    public void read(View view){ 
     try{ 
     FileInputStream fin = openFileInput(file); 
     int c; 
     String temp=""; 
     while((c = fin.read()) != -1){ 
      temp = temp + Character.toString((char)c); 
     } 
     et.setText(temp); 
     Toast.makeText(getBaseContext(),"file read", 
     Toast.LENGTH_SHORT).show(); 

     }catch(Exception e){ 

     } 
    } 
    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

} 

以下是RES /值/字符串的内容写的Android活性的代码.XML。

<?xml version="1.0" encoding="utf-8"?> 
<resources> 

    <string name="app_name">Storage</string> 
    <string name="action_settings">Settings</string> 
    <string name="hello_world">Hello world!</string> 
    <string name="save">save to intenal storage</string> 
    <string name="read">load from intenal storag</string> 

</resources> 

为你的目的是什么,你所能做的就是,你可以使用一个分隔符象一个管道的符号“|”在插入字符串值时插入两个字符串之间,并且在读取文件之后,可以将字符串值分隔为分隔符“|”的基础。

更多阅读http://www.tutorialspoint.com/android/android_internal_storage.htm

+0

上述代码将从user.is获得单个输入,可以从用户获取多个值并将这些值存储在内部存储中。 – user3468596

+0

是的,你可以有这些多个值,并选择一个分隔符,而在插入和阅读解析基于分隔符 –

+0

你可以发布它的代码.. – user3468596

相关问题