gpt4 book ai didi

java - 尝试在 Android Activity 中执行简单命令时出错

转载 作者:行者123 更新时间:2023-11-29 23:01:51 25 4
gpt4 key购买 nike

我正在学习使用以 Java 编写的 Android 应用读取和写入简单文件。但是我无法解决这个初始错误!我想我收到此错误是因为 this 代替了上下文。该应用程序编译成功,但在我的设备上安装后无法打开。

我没有尝试太多,但我在这里提供了代码。我试图通过编辑 TextView 接受一个简单的文本,然后使用保存按钮将其保存到 Android 中的一个文件中。

package com.example.filemaketest;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

import java.io.File;
import java.io.FileOutputStream;

public class MainActivity extends AppCompatActivity {
String filename = "Testing-app-file.txt";
File path = this.getFilesDir();

// File file = new File(path, filename);
// FileOutputStream outputStream;
public void save(View view) {
EditText edit = (EditText) findViewById(R.id.infoText);
String info = edit.getText().toString();
Log.i("info", info);
Toast.makeText(this, info + " button Pressed", Toast.LENGTH_LONG).show();
Toast.makeText(this, " Saving", Toast.LENGTH_LONG).show();
// try {
// outputStream = openFileOutput(filename, this.MODE_PRIVATE);
// outputStream.write(info.getBytes());
// outputStream.close();
// } catch (Exception e) {
// e.printStackTrace();
// }
}

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

最佳答案

我首先想到的是这一行:

public class MainActivity extends AppCompatActivity {
String filename ="Testing-app-file.txt";
File path= this.getFilesDir(); // <<< This line

您正在类定义中内联定义 path,这等同于在 MainActivity() 构造函数中设置它。这是在 Activity Lifecycle 之前已经开始,因此 this 作为 Context 还不存在。您需要稍后在 Activity 生命周期中定义 path,例如在 onCreate() 期间:

public class MainActivity extends AppCompatActivity {
String filename ="Testing-app-file.txt";
File path;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
path = this.getFilesDir();
}

...

关于java - 尝试在 Android Activity 中执行简单命令时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56886608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com