Android 从(MainActivity.java)中的按钮调用另一个类中的方法

Android 从(MainActivity.java)中的按钮调用另一个类中的方法,android,Android,在MainActivity中单击按钮后,我的代码应该编写一个文件。 我画了一个空白,为什么在模拟器上运行时单击按钮时会出现“不幸的是,我的应用程序已停止”的消息。(Android Studio 2.2.3) 谢谢你的洞察力 public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState

在MainActivity中单击按钮后,我的代码应该编写一个文件。 我画了一个空白,为什么在模拟器上运行时单击按钮时会出现“不幸的是,我的应用程序已停止”的消息。(Android Studio 2.2.3) 谢谢你的洞察力

        public class MainActivity extends AppCompatActivity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Button button;
            button = (Button) findViewById(R.id.button);

            button.setOnClickListener(new OnClickListener() {
                public void onClick(View arg0) {
                    Class2 Class2_ref = new Class2();
                    Class2_ref.method();

                }
            });
        }
    }


//Class2
import android.app.Activity;
import android.content.Context;
import android.util.Log;
import java.io.IOException;
import java.io.OutputStreamWriter;

public class Class2 extends Activity{
    private static final String TAG = Class2.class.getName();
    private static final String FILENAME = "myFile.txt";

    public void method(){
        String textToSaveString = "Hello World";
        writeToFile(FILENAME, textToSaveString);
    }

    public void writeToFile(String filename, String data) {
        try {
            OutputStreamWriter outputStreamWriter = new OutputStreamWriter(openFileOutput(filename, Context.MODE_PRIVATE));
            outputStreamWriter.write(data);
            outputStreamWriter.close();
        }
        catch (IOException e) {
            Log.e(TAG, "File write failed: " + e.toString());
        }
    }
}

您的
openFileOutput
方法是什么,您必须提供
outputStreamWriter
的完整路径,请编写错误跟踪

public class Class2{

    private static final String TAG = Class2.class.getName();
    private static final String FILENAME = "myFile.txt";
    public void method(){
        String textToSaveString = "Hello World";
        writeToFile(FILENAME, textToSaveString);
    }

    public void writeToFile(String filename, String data) {

        File f = new File(Environment.getExternalStorageDirectory() + "/" + filename);
        if (f.exists()) {
            f.delete();
        }
        try {
            f.createNewFile();
        } catch (IOException e) {
            e.printStackTrace();
        }
        BufferedWriter bw = null;
        try {
            bw = new BufferedWriter(new FileWriter(f));
        } catch (IOException e) {
            e.printStackTrace();
        }

        try {
            bw.write("CONTENT HERE");
        } catch (IOException e) {
            e.printStackTrace();
        }

        try {
            if (bw != null)
            bw.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

试试这个,希望有帮助

安卓显示器中有什么?(错误消息)为什么要扩展Class2的活动错误是:尝试在空对象引用上调用虚拟方法“java.io.FileOutputStream android.content.Context.openFileOutput(java.lang.String,int)”。在任何示例中,我都没有看到outputStreamWriter的路径。我只想将此应用程序的数据写入内部存储。不幸的是,代码也崩溃了。我从主活动调用方法时出错了?此代码没有任何错误。。它当前正在我的一个项目中运行错误是:不幸的是,我的应用程序已停止进程:com.example.name.myapplication,PID:2558 java.lang.NullPointerException:尝试调用虚拟方法“java.io.FileOutputStream android.content.Context.openFileOutput(java.lang.String,int)'在空对象引用上,请尝试上述代码。。上面的代码中没有类似openFileOutput()的行,使用我原始文章中的MainActivity和“Class2”的代码,它会在按下按钮时崩溃。