如何通过单击按钮清除存储的编辑文本值(存储的文件)?



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

下图示例:

[https://i.stack.imgur.com/txv81.png][1]

我想确保下次键入 editexts 时,活动应仅显示 iv'e 在那一刻键入的内容,并使"清除"按钮删除所有以前存储的数据。

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

package com.example.msi.astorydrivengame;
import android.content.Context;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import org.w3c.dom.Text;
import java.io.FileOutputStream;

public class FillInOwnStory extends AppCompatActivity {

Button storysubmit;
Button menubutton2;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fill_in_own_story);
fillStoryName = (EditText) findViewById(R.id.fillStoryName);
fillAuthor = (EditText) findViewById(R.id.fillAuthor);
fillStoryDescp = (EditText) findViewById(R.id.fillStoryDescp);
storysubmit = (Button) findViewById(R.id.storysubmit);
menubutton2 = (Button) findViewById(R.id.menubutton2);
}
private EditText fillStoryName;
private EditText fillAuthor;
private EditText fillStoryDescp;
private TextView StoryNameColumn;
private TextView AuthorColumn;
private TextView DescpColumn;

public void buttonClickFunction26(View view) {
fillStoryName = (EditText) findViewById(R.id.fillStoryName);
String StoryNameFilled = fillStoryName.getText().toString();
fillAuthor = (EditText) findViewById(R.id.fillAuthor);
String AuthorNameFilled = fillAuthor.getText().toString();
fillStoryDescp = (EditText) findViewById(R.id.fillStoryDescp);
String DescpFilled = fillStoryDescp.getText().toString();
try{
FileOutputStream out = openFileOutput("storyname.txt", Context.MODE_APPEND);
out.write(StoryNameFilled.getBytes());
out.close();
}catch(java.io.IOException e){
e.printStackTrace();
}
try{
FileOutputStream out = openFileOutput("author.txt", Context.MODE_APPEND);
out.write(AuthorNameFilled.getBytes());
out.close();
}catch(java.io.IOException e){
e.printStackTrace();
}
try{
FileOutputStream out = openFileOutput("descp.txt", Context.MODE_APPEND);
out.write(DescpFilled.getBytes());
out.close();
}catch(java.io.IOException e){
e.printStackTrace();
}
Intent intent = new Intent(this, FillColumn.class);
intent.putExtra("storyname_label", StoryNameFilled);
intent.putExtra("author_label", AuthorNameFilled);
intent.putExtra("descp_label", DescpFilled);
startActivity(intent);

}
}

这是 FillColumn 代码(编辑文本值显示在给定的文本视图中。

package com.example.msi.astorydrivengame;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

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"));
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();
}
AuthorColumn.setText(intentx.getStringExtra("author_label"));
try {
InputStream instream = openFileInput("author.txt");
if (instream != null) {
InputStreamReader inputreader = new InputStreamReader(instream);
BufferedReader buffreader = new BufferedReader(inputreader);
String line;
while ((line = buffreader.readLine()) != null) {
AuthorColumn.setText(line);
}
}
instream.close();
} catch (IOException e) {
e.printStackTrace();
}
DescpColumn.setText(intentx.getStringExtra("descp_label"));
try {
InputStream instream = openFileInput("descp.txt");
if (instream != null) {
InputStreamReader inputreader = new InputStreamReader(instream);
BufferedReader buffreader = new BufferedReader(inputreader);
String line;
while ((line = buffreader.readLine()) != null) {
DescpColumn.setText(line);
}
}
instream.close();
} catch (IOException e) {
e.printStackTrace();
}
}

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("");
}
}

我知道我的编码不干净,混乱,我的英语不好,所以,对不起。

只需在EditText中将文本设置为空字符串

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

这可能是因为你正在做:

此行根据上一个活动中的所需内容设置文本:

StoryNameColumn.setText(intentx.getStringExtra("storyname_label"));

但是在该行之后,您将使用此代码覆盖您在StoryNameColumn中设置的值。尝试删除从文件中读取的所有行。

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("");
}
}

最新更新