Android 存储文件中的数据并将其传递给新活动

Android 存储文件中的数据并将其传递给新活动,android,android-activity,android-edittext,Android,Android Activity,Android Edittext,下面的代码用于从edittext中获取字符串并将其存储在文件中,这仅适用于1个edittext,如果我使用了两个edittext,则它不起作用,同时我希望显示另一个活动的结果 public class MainActivity extends Activity { File myInternalFile; File myExternalFile; private String filename = "MySampleFile.txt"; private Str

下面的代码用于从edittext中获取字符串并将其存储在文件中,这仅适用于1个edittext,如果我使用了两个edittext,则它不起作用,同时我希望显示另一个活动的结果

public class MainActivity extends Activity {
     File myInternalFile;
     File myExternalFile;
    private String filename = "MySampleFile.txt";
    private String filepath = "MyFileStorage";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

@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;
}

public void saveInternalHandler(View view) 
 {
    EditText myInputText = (EditText) findViewById(R.id.myInputText);
    TextView responseText = (TextView) findViewById(R.id.responseText);
    ContextWrapper contextWrapper = new 
    ContextWrapper(getApplicationContext());
    File directory = contextWrapper.getDir(filepath, 
    Context.MODE_PRIVATE);
    myInternalFile = new File(directory , filename);

try {

    FileOutputStream fos = new FileOutputStream(myInternalFile);
    fos.write(myInputText.getText().toString().getBytes());
    fos.close();
 } 

catch (IOException e) {
    e.printStackTrace();
 }
    myInputText.setText("");
    responseText.setText("MySampleFile.txt saved to Internal Storage...");
 }

public void getInternalHandler(View view) 
 {
    EditText myInputText = (EditText) findViewById(R.id.myInputText);
    TextView responseText = (TextView) findViewById(R.id.responseText);
    String myData = "";

try {

    FileInputStream fis = new FileInputStream(myInternalFile);
    DataInputStream in = new DataInputStream(fis);
    BufferedReader br = new BufferedReader(new 
    InputStreamReader(in));
    String strLine;
    while ((strLine = br.readLine()) != null) {
    myData = myData + strLine;
 }
    in.close();
 } 
catch (IOException e) { e.printStackTrace();
 }
    myInputText.setText(myData);
    responseText.setText("MySampleFile.txt data retrieved from Internal Storage...");
 }
}

再详细一点说明这在两个EditText中如何不起作用就好了。但我的猜测是,您发现只有第二个文本显示,这是因为当您调用

myInternalFile=新文件(目录、文件名)

这是您第二次在
目录中创建与旧文件同名的新文件,即您正在覆盖旧文件。您需要
myInternalFile
作为全局变量

关于如何在活动之间传递数据,特别是字符串,这是一个很好的资源:

你为什么要将
字符串写入一个文件,而不是使用
意图
共享引用
将其发送到另一个活动中?这里是最好的例子:好的,我最后使用了两个按钮,一个保存人名,另一个保存两个单独文件中的权重。现在我想在主要活动上查看这些。如何在文本视图中显示文件?对不起,我是新手。