我编写了一个简单的笔记应用程序,所以有三个活动,一个(MainActivity)用于文本字段,一个按钮用于将文本字段中的内容保存为.txt,另一个活动(Notizen_Ansehen)用于列表,什么显示保存的所有.txt文件。第三个活动(Edit_Notes)用于编辑.txt的内容并通过离开活动保存它,此活动中还有一个按钮用于删除此文件,当我单击按钮删除时,此文件不是' t删除但仍然存在,这是问题,应该删除。几个星期以来,我试图通过谷歌和研究找到错误,但我仍然没有犯错,所以我决定问你,这是我的代码:
Edit_Notes_Activity.java:
@Override
protected void onPause() {
if(!(isDeleted)) {
try {
OutputStream outputStream = new FileOutputStream(notefile);
outputStream.write(editText2.getText().toString().getBytes());
outputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
else {
}
super.onPause();
this.recreate();
}
----> private void deleteNote() {
AlertDialog.Builder dialog = new AlertDialog.Builder(Edit_Notes_Activity.this);
dialog.setTitle("Notiz löschen?");
dialog.setPositiveButton("Löschen", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
notefile.delete();
Toast.makeText(getApplicationContext(), "Notiz wurde gelöscht", Toast.LENGTH_SHORT).show();
isDeleted = true;
finish(); <----
}
});
我不知道您是否还需要.xml数据来查找错误,但如果您能帮我找到问题,我会很高兴。如果您需要的不仅仅是活动,只需写下来,我就会发送给他们。 我现在缩短了代码,问题是我不知道什么是重要的,错误可能在哪里,所以我让一些活动。 谢谢你的帮助!
声明notefile:
String notetext;
File notefile;
editText2 = (EditText)findViewById(R.id.editText2);
if(getIntent().hasExtra("EXTRA_NOTE_TEXT") && getIntent().hasExtra("EXTRA_NOTE_FILE")){
notetext = getIntent().getStringExtra("EXTRA_NOTE_TEXT");
notefile = (File) getIntent().getExtras().get("EXTRA_NOTE_FILE");
editText2.setText(notetext);
}
编辑后返回列表:
protected void onPause() {
if(!(isDeleted)) {
try {
OutputStream outputStream = new FileOutputStream(notefile);
outputStream.write(editText2.getText().toString().getBytes());
outputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
else {
}
super.onPause();
this.recreate();
}
每个带有notefile的代码:
编辑Notes活动:
if(getIntent().hasExtra("EXTRA_NOTE_TEXT") && getIntent().hasExtra("EXTRA_NOTE_FILE")){
notetext = getIntent().getStringExtra("EXTRA_NOTE_TEXT");
notefile = (File) getIntent().getExtras().get("EXTRA_NOTE_FILE");
editText2.setText(notetext);
}
@Override
protected void onPause() {
if(!(isDeleted)) {
try {
OutputStream outputStream = new FileOutputStream(notefile);
outputStream.write(editText2.getText().toString().getBytes());
outputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
else {
}
super.onPause();
this.recreate();
}
private void deleteNote() {
AlertDialog.Builder dialog = new AlertDialog.Builder(Edit_Notes_Activity.this);
dialog.setTitle("Notiz löschen?");
dialog.setPositiveButton("Löschen", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
notefile.delete();
Toast.makeText(getApplicationContext(), "Notiz wurde gelöscht", Toast.LENGTH_SHORT).show();
isDeleted = true;
notefile.delete();
finish();
notefile.delete();
}
});
Notizen Ansehen活动:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_notizen_ansehen_);
listView = (ListView) findViewById(R.id.listView);
arrayListSetup();
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(Notizen_ansehen_Activity.this, android.R.layout.simple_list_item_1, texteliste);
listView.setAdapter(arrayAdapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent editIntent = new Intent(Notizen_ansehen_Activity.this, Edit_Notes_Activity.class);
editIntent.putExtra("EXTRA_NOTE_TEXT", texteliste.get(position));
editIntent.putExtra("EXTRA_NOTE_FILE", dateinliste.get(position));
startActivity(editIntent);
}
});
@Override
protected void onResume() {
super.onResume();
setContentView(R.layout.activity_notizen_ansehen_);
listView = (ListView) findViewById(R.id.listView);
arrayListSetup();
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(Notizen_ansehen_Activity.this, android.R.layout.simple_list_item_1, texteliste);
listView.setAdapter(arrayAdapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent editIntent = new Intent(Notizen_ansehen_Activity.this, Edit_Notes_Activity.class);
editIntent.putExtra("EXTRA_NOTE_TEXT", texteliste.get(position));
editIntent.putExtra("EXTRA_NOTE_FILE", dateinliste.get(position));
startActivity(editIntent);
}
});
}
EXTRA_NOTE_FILE和EXTRA_NOTE_TEXT用于获取数据的值和我猜的内容,实际上它已经有一段时间了,因为我编写代码并且不记得所有内容,但我想你可以在代码中轻松搞清楚。 编辑它们非常重要,因此如果单击列表中的项目,代码就会知道此项目的位置,文件位置以及列表中此项目的内容。