val pref = cc.getApplicationContext().getSharedPreferences("MyPrefdd", 0)
val editor = pref.edit()
editor.putString("APPDBSTR", APPDBSTR)
editor.apply()
val pref = context!!.getSharedPreferences("MyPrefdd", 0)
val mFragAPPDBSTR = pref.getString("APPDBSTR", null)
companion object {
/**
* new instance pattern for fragment
*/
@JvmStatic
fun newInstance(myObject: List<TransactionEntity>?, cc: Context, appDatabase: AppDatabase, networkDefinitionProvider: NetworkDefinitionProvider, incoming: TransactionAdapterDirection): SendingFragment {
val gson = Gson()
val gson1 = GsonBuilder().create()
val model = myObject as List<TransactionEntity>
val IT = gson.toJson(model)
System.out.println("json representation :" + IT)
val bo = ByteArrayOutputStream()
val so = ObjectOutputStream(bo)
so.writeObject(appdatabase)
so.flush()
val serializedObject = String(Base64.encode(bo.toByteArray()))
val bundle = Bundle()
bundle.putString("bundleValue", IT)
bundle.putSerializable("serializedObject",serializedObject)
val sendFragament: SendingFragment = SendingFragment()
sendFragament.setArguments(bundle)
return sendFragament
}
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val gson = Gson()
val gson1 = GsonBuilder().create()
val pref = context!!.getSharedPreferences("MyPrefdd", 0)
val mFragIT = pref.getString("NEWIT", "")
val mFragserializedObject = arguments!!.getSerializable("serializedObject") --- i here i can the value
}
Caused by: java.io.NotSerializableException: com.crypto.wallet.data.AppDatabase_Impl
at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1344)
at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1651)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1497)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1461)
at com.crypto.wallet.activities.SendingFragment$Companion.newInstance(SendingFragment.kt:52)
at com.crypto.wallet.activities.MainActivity.setupViewPager(MainActivity.kt:420)
at com.crypto.wallet.activities.MainActivity.access$setupViewPager(MainActivity.kt:70)
at com.crypto.wallet.activities.MainActivity$onCreate$outgoingTransactionsObserver$1.onChanged(MainActivity.kt:277)
at com.crypto.wallet.activities.MainActivity$onCreate$outgoingTransactionsObserver$1.onChanged(MainActivity.kt:70)
at android.arch.lifecycle.LiveData.considerNotify(LiveData.java:109)
at android.arch.lifecycle.LiveData.dispatchingValue(LiveData.java:126)
at android.arch.lifecycle.LiveData.setValue(LiveData.java:282)
at android.arch.lifecycle.LiveData$1.run(LiveData.java:87)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
调用ToString
时得到的只是内存中对象的哈希值。它不包含实际的对象值,因此不能以这种方式还原。
https://developer.android.com/reference/java/lang/Object.html#toString()
class Object的toString方法返回一个字符串,该字符串由对象作为其实例的类的名称、at符号“@”和对象的散列代码的无符号十六进制表示形式组成。
您需要序列化整个对象才能使还原工作。根据您的类,这可能很简单,只需扩展Serializable并获得string
,如以下答案所述:https://stackoverflow.com/a/8887244/4193263
ByteArrayOutputStream bo = new ByteArrayOutputStream();
ObjectOutputStream so = new ObjectOutputStream(bo);
so.writeObject(myObject);
so.flush();
String serializedObject = new String(Base64.encodeBase64(bo.toByteArray()));
问题内容: 在这个奇怪的例子中,有人创建了一个新类型,它实际上只是一个字符串: 但是,此代码无法编译: 不能在返回参数中使用Foobar(CustomType类型)作为类型字符串 您将如何修复SomeFunction,使其能够返回Foobar的字符串值(“ somestring”)? 问题答案: 将值转换为字符串:
现在如何将这个“person”字符串返回到“”模型对象。 这是我的密码。
问题内容: 我刚开始使用Go,所以这很明显。编译器不允许以下代码:(http://play.golang.org/p/3sTLguUG3l) 错误是: 从规格上看,[] string看起来与[] Card不是相同的基础类型,因此无法进行类型转换。 确实是这样,还是我错过了什么? 如果是这样,为什么会这样呢?假设在一个非宠物示例程序中,我输入了一个字符串切片,是否可以将其“投射”到Card切片中,或
我有一个字符串返回给我,其中包含转义字符。 这是一个示例字符串 " test\40gmail.com " 如您所见,它包含转义字符。我需要将其转换为其实际值,即 " test@gmail.com " 我该怎么做?
s是'E',但我要的是“123” 请告诉我怎样才能得到“123”。 在Java,我可以这样做: 我如何在Go中两个字符串?
问题内容: 当我尝试使用“ unicode(head.contents [3])”获取标签的内容时,我得到类似于以下的输出:“ Christensen Sk \ xf6ld”。我希望转义序列作为字符串返回。如何在python中做? 问题答案: 假设Python将名称视为普通字符串,则首先必须将其解码为unicode: 实现此目的的另一种方法: 注意字符串前面的“ u”,表示它是未编码的。如果进行打