Java 如何通过单击按钮清除存储的Edittext值(存储的文件)?
让我解释一下(对不起,我的英语很差)。我创建了一个活动,其中有三个文本框需要填写。填写完所有内容后,会有一个“提交”按钮,将数据传递给另一个活动,稍后将显示在各自的文本视图中。问题是,每当我填写这些编辑文本并传递信息时,它都会收集以前传递的数据。我有一个“清除”按钮,但这只帮助清除文本视图显示。我想清除存储的数据,以便下次我再次传递数据时,TextView显示新传递的数据,而不是与以前的数据混淆 下面是一个图像示例: [ 我想确保当我下次输入EditExt时,活动应该只显示在那一刻输入的内容,并让“清除”按钮清除所有先前存储的数据 以下是FillInOwnStory代码(填写此活动中的编辑文本) 以下是FillColumn代码(edittext值显示在此文本视图中)Java 如何通过单击按钮清除存储的Edittext值(存储的文件)?,java,android,Java,Android,让我解释一下(对不起,我的英语很差)。我创建了一个活动,其中有三个文本框需要填写。填写完所有内容后,会有一个“提交”按钮,将数据传递给另一个活动,稍后将显示在各自的文本视图中。问题是,每当我填写这些编辑文本并传递信息时,它都会收集以前传递的数据。我有一个“清除”按钮,但这只帮助清除文本视图显示。我想清除存储的数据,以便下次我再次传递数据时,TextView显示新传递的数据,而不是与以前的数据混淆 下面是一个图像示例: [ 我想确保当我下次输入EditExt时,活动应该只显示在那一刻输入的内容,并
我知道我的代码不干净、不整洁,我的英语也不好,所以,很抱歉。只需在您的
编辑文本中将文本设置为空字符串即可
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("");
}
}