亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Android - openFileInput() NullPointerException

Android - openFileInput() NullPointerException

侃侃無極 2023-04-13 10:50:16
我正在嘗試在我的 android 應用程序中生成一個代碼作為字符串并將其保存到一個文本文件中。當您按下共享按鈕時,應該從文本文件中讀取代碼并將其復制到剪貼板。我想我不了解有關活動/上下文的內容。當然,我閱讀了有關它的文檔,但我無法找出問題所在。希望你們能幫助我!FileSystem.javapackage com.niclasjaksch.shoppinglist;import android.content.Context;import androidx.appcompat.app.AppCompatActivity;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;class FileSystem extends AppCompatActivity {    static String filename = "shoppinglist_code.txt";    void Create() {        try {            FileOutputStream fOut = openFileOutput(filename, Context.MODE_PRIVATE);            String str = Utility.randomString(10);            fOut.write(str.getBytes());            fOut.close();        } catch (IOException e) {            e.printStackTrace();        }    }    String Read() {        String result = "";        try {            FileInputStream fin = openFileInput(filename);            int c;            while( (c = fin.read()) != -1){                result += c;            }            fin.close();        } catch (Exception e) {            System.out.println("An error occurred.");            e.printStackTrace();        }        return result;    }    void Clear() {        try {            File dir = getFilesDir();            File file = new File(dir, filename);            file.delete();        } catch (Exception e) {            System.out.println("An error occurred.");            e.printStackTrace();        }    }}Share.javapackage com.niclasjaksch.shoppinglist;import android.content.ClipData;import androidx.appcompat.app.AppCompatActivity;class Share extends AppCompatActivity {    android.content.ClipboardManager clipboardManager = null;    FileSystem fs = new FileSystem();    void Share() {        String code = fs.Read();        if(code == "" || code == null) {            fs.Create();            code = fs.Read();        }        ClipData clipData = ClipData.newPlainText("Source Text", code);        clipboardManager.setPrimaryClip(clipData);    }}
查看完整描述

2 回答

?
慕蓋茨4494581

TA貢獻1850條經驗 獲得超11個贊

AppCompatActivity僅為實際 UI 工作創建子類,您將在其中使用startActivity()或開始該活動startActivityForResult()。

將這些方法移動到真實的活動中,例如MainActivity,并擺脫ShareFileSystem類。


查看完整回答
反對 回復 2023-04-13
?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

首先,您不應該擴展AppCompatActivityforFileSystemShare。

發生的事情是將openFileOutput對象FileSystemthis) 作為上下文。實際上,它不算作單獨的活動。

您可以按照 CommonWare 的建議刪除類FileSystemShare,并將它們的功能移動到MainActivity. 或者您可以顯式地contextMainActivity.


查看完整回答
反對 回復 2023-04-13
  • 2 回答
  • 0 關注
  • 131 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號