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