第一次發帖,50分都給了求大神看看,這個函式為什么不能呼叫,該申請的權限都申請了,改匯入的應該也都匯入了,為什么不能呼叫啊啊啊?!!?
private void output(){
String content = TvTagUii.getText().toString();
FileOutputStream fos;
try {
fos = openFileOutput("data.txt", MODE_PRIVATE);
fos.write(content.getBytes());
fos.close();
/*PrintStream ps = new PrintStream(fos);
ps.println(content);
ps.close();
fos.close();*/
} catch (Exception e) {
e.printStackTrace();
}
}
uj5u.com熱心網友回復:
this.openFileOutput("data.txt", MODE_PRIVATE);這里的this需要一個Context 實體比如Activity,你這個output()的方法是寫在某個Activity里面么?如果不是,那么你需要一個Context 實體然后點出這個openFileOutput方法
uj5u.com熱心網友回復:
但是我實體化了以后,會導致程式運行崩潰,大神知道什么原因么?
uj5u.com熱心網友回復:
你把這個方法所在的class類貼出來我看下,還有就是標明你實體化報錯的地方uj5u.com熱心網友回復:
這個output()由一個按鈕監聽器呼叫,
public class BtClearClickListener implements OnClickListener {
@Override
public void onClick(View v) { output();}}然后呼叫的那個按鈕定義在這里
@override
public void onActivityCreated(Bundle savedInstanceState) {
BtClear.setOnClickListener(new BtClearClickListener());}
然后按鈕和text view定義在這個繼承類里
public class UHFReadTagFragment extends KeyDwonFragment
KeydownFragment繼承了Fragment
這個是運行時崩潰錯誤顯示在output()那里
uj5u.com熱心網友回復:
也就是說,你的output()方法寫在你的UHFReadTagFragment類里面。那么你應該這樣呼叫getActivity().openFileOutput("data.txt", MODE_PRIVATE);
此外我看到你這里提示的空指標例外,那么還有一種可能就是"data.txt"這里的路徑檔案不存在,你需要檢測你的檔案是否存在,或者說這個路徑是否正確
uj5u.com熱心網友回復:
1、看報null指標例外的地方是370行,370根據你貼出來的代碼 不是這句嗎? String content = TvTagUii.getText().toString(); --->請確認物件是否為null 或者 物件的getText是否為null.2、你的 fos = openFileOutput("data.txt", MODE_PRIVATE);建議如下寫
private static final String sTempCropFilename = "crop-temp";
File path = mActivity.getFileStreamPath(sTempCropFilename);
path.delete();
tempStream = mActivity.openFileOutput(sTempCropFilename, MODE_PRIVATE);
uj5u.com熱心網友回復:
把private void output(){}寫到class MainActivity : AppCompatActivity() {}里面就沒問題了轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/273423.html
標籤:Android
