我正在嘗試在我的 android 應(yīng)用程序中生成一個代碼作為字符串并將其保存到一個文本文件中。當(dāng)您按下共享按鈕時,應(yīng)該從文本文件中讀取代碼并將其復(fù)制到剪貼板。我想我不了解有關(guān)活動/上下文的內(nèi)容。當(dāng)然,我閱讀了有關(guān)它的文檔,但我無法找出問題所在。希望你們能幫助我!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貢獻(xiàn)1850條經(jīng)驗(yàn) 獲得超11個贊
AppCompatActivity
僅為實(shí)際 UI 工作創(chuàng)建子類,您將在其中使用startActivity()
或開始該活動startActivityForResult()
。
將這些方法移動到真實(shí)的活動中,例如MainActivity
,并擺脫Share
和FileSystem
類。

眼眸繁星
TA貢獻(xiàn)1873條經(jīng)驗(yàn) 獲得超9個贊
首先,您不應(yīng)該擴(kuò)展AppCompatActivity
forFileSystem
和Share
。
發(fā)生的事情是將openFileOutput
對象FileSystem
( this
) 作為上下文。實(shí)際上,它不算作單獨(dú)的活動。
您可以按照 CommonWare 的建議刪除類FileSystem
和Share
,并將它們的功能移動到MainActivity
. 或者您可以顯式地context
從MainActivity
.
添加回答
舉報(bào)
0/150
提交
取消