Java 如何通过单击按钮清除存储的Edittext值(存储的文件)?

Java 如何通过单击按钮清除存储的Edittext值(存储的文件)?,java,android,Java,Android,让我解释一下(对不起,我的英语很差)。我创建了一个活动,其中有三个文本框需要填写。填写完所有内容后,会有一个“提交”按钮,将数据传递给另一个活动,稍后将显示在各自的文本视图中。问题是,每当我填写这些编辑文本并传递信息时,它都会收集以前传递的数据。我有一个“清除”按钮,但这只帮助清除文本视图显示。我想清除存储的数据,以便下次我再次传递数据时,TextView显示新传递的数据,而不是与以前的数据混淆 下面是一个图像示例: [ 我想确保当我下次输入EditExt时,活动应该只显示在那一刻输入的内容,并

让我解释一下(对不起,我的英语很差)。我创建了一个活动,其中有三个文本框需要填写。填写完所有内容后,会有一个“提交”按钮,将数据传递给另一个活动,稍后将显示在各自的文本视图中。问题是,每当我填写这些编辑文本并传递信息时,它都会收集以前传递的数据。我有一个“清除”按钮,但这只帮助清除文本视图显示。我想清除存储的数据,以便下次我再次传递数据时,TextView显示新传递的数据,而不是与以前的数据混淆

下面是一个图像示例:

[

我想确保当我下次输入EditExt时,活动应该只显示在那一刻输入的内容,并让“清除”按钮清除所有先前存储的数据

以下是FillInOwnStory代码(填写此活动中的编辑文本)

以下是FillColumn代码(edittext值显示在此文本视图中)


我知道我的代码不干净、不整洁,我的英语也不好,所以,很抱歉。

只需在您的
编辑文本中将文本设置为空字符串即可

onClick(View view){
    ----
    yourEditText.getText().clear();  
    //or
    yourEditText.setText("");
}

这可能是因为您正在执行以下操作:

此行根据您对上一活动的要求设置文本:

StoryNameColumn.setText(intentx.getStringExtra("storyname_label"));
但就在这一行之后,您使用的代码将覆盖您在
storyname列中设置的值。请尝试删除从文件中读取的所有行

try {
    InputStream instream = openFileInput("storyname.txt");

    if (instream != null) {
        InputStreamReader inputreader = new InputStreamReader(instream);
        BufferedReader buffreader = new BufferedReader(inputreader);

        String line;

        while ((line = buffreader.readLine()) != null) {
            StoryNameColumn.setText(line);
        }
    }
    instream.close();
} catch (IOException e) {
    e.printStackTrace();
}
编辑:

public class FillColumn extends AppCompatActivity {

TextView StoryNameColumn;
TextView AuthorColumn;
TextView DescpColumn;
Button menubutton3;
Button clearbutton;
String xxx;

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

StoryNameColumn = (TextView) findViewById(R.id.StoryNameColumn);
AuthorColumn = (TextView) findViewById(R.id.AuthorColumn);
DescpColumn = (TextView) findViewById(R.id.DescpColumn);
menubutton3 = (Button) findViewById(R.id.menubutton3);
clearbutton = (Button) findViewById(R.id.clearbutton);


Intent intentx = getIntent();
StoryNameColumn.setText(intentx.getStringExtra("storyname_label"));
AuthorColumn.setText(intentx.getStringExtra("author_label"));
DescpColumn.setText(intentx.getStringExtra("descp_label"));
}


public void buttonClickFunction30(View view) {

Intent intent = new Intent(getApplicationContext(), StoryPageChoices.class);
String strNAME = "Slot 1";
intent.putExtra("NewStory", strNAME);
startActivity(intent);

}

public void clear(View v) {
StoryNameColumn.setText("");
AuthorColumn.setText("");
DescpColumn.setText("");

  }
}

我不太确定,但请告诉我,您正在将文本设置为extras中的Textview和文件中的Textview。我认为它正在使用旧文本,因为旧文本存在于这些文件中。清除旧文件内容并重新编写,然后尝试或仅设置extras或文件中的文本是的,就是这样,先生,我不知道如何正确传达它.哪几行兄弟?我还是个新手,所以我不知道你在说什么,我照你说的做了,但是当我去参加另一个活动时,我刚才传递的数据已经不存在了。在我提交之后,数据就在那里了,但是数据不在那里。我编辑了我的答案。试着复制这个类,看看这是否有效
try {
    InputStream instream = openFileInput("storyname.txt");

    if (instream != null) {
        InputStreamReader inputreader = new InputStreamReader(instream);
        BufferedReader buffreader = new BufferedReader(inputreader);

        String line;

        while ((line = buffreader.readLine()) != null) {
            StoryNameColumn.setText(line);
        }
    }
    instream.close();
} catch (IOException e) {
    e.printStackTrace();
}
public class FillColumn extends AppCompatActivity {

TextView StoryNameColumn;
TextView AuthorColumn;
TextView DescpColumn;
Button menubutton3;
Button clearbutton;
String xxx;

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

StoryNameColumn = (TextView) findViewById(R.id.StoryNameColumn);
AuthorColumn = (TextView) findViewById(R.id.AuthorColumn);
DescpColumn = (TextView) findViewById(R.id.DescpColumn);
menubutton3 = (Button) findViewById(R.id.menubutton3);
clearbutton = (Button) findViewById(R.id.clearbutton);


Intent intentx = getIntent();
StoryNameColumn.setText(intentx.getStringExtra("storyname_label"));
AuthorColumn.setText(intentx.getStringExtra("author_label"));
DescpColumn.setText(intentx.getStringExtra("descp_label"));
}


public void buttonClickFunction30(View view) {

Intent intent = new Intent(getApplicationContext(), StoryPageChoices.class);
String strNAME = "Slot 1";
intent.putExtra("NewStory", strNAME);
startActivity(intent);

}

public void clear(View v) {
StoryNameColumn.setText("");
AuthorColumn.setText("");
DescpColumn.setText("");

  }
}