我无法在我的应用

时间:2016-04-01 16:48:52

标签: java android

我编写了一个简单的笔记应用程序,所以有三个活动,一个(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用于获取数据的值和我猜的内容,实际上它已经有一段时间了,因为我编写代码并且不记得所有内容,但我想你可以在代码中轻松搞清楚。 编辑它们非常重要,因此如果单击列表中的项目,代码就会知道此项目的位置,文件位置以及列表中此项目的内容。

0 个答案:

没有答案