У меня есть fragment
, который обрабатывает objects
.поэтому мне нужно отправить значения Instance в OnCreateview (), поэтому я хочу преобразовать мою сериализуемую форму, поэтому я создаю эти классы с помощью getter / setter
BeanDemo.kt
class BeanDemo : Serializable {
var MyAppDatabase: AppDatabase ? = null
constructor() {
}
//secoutry constructor
constructor(appDatabase: AppDatabase){
this. MyAppDatabase = appDatabase
Log.d("appDatabase : Bean", "appDatabase$appDatabase")
}
//getter/setter methods
fun getName(): AppDatabase? {
Log.d("appDatabase : getName", "appDatabase$MyAppDatabase")
return MyAppDatabase
}
fun setName(NEWAPPDB: AppDatabase) {
Log.d("appDatabase : NEWAPPDB", "appDatabase$NEWAPPDB")
MyAppDatabase = NEWAPPDB
}
}
SendingFragment.kt
class SendingFragment: Fragment(),Serializable
{
private var linearLayoutManager: LinearLayoutManager? = 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 sampleVar = BeanDemo(appDatabase)
sampleVar.setName(appDatabase)
val bundle = Bundle()
bundle.putSerializable("serializedObject",sampleVar)
val sendFragament = SendingFragment()
sendFragament.arguments = bundle
return sendFragament
}
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val beanDemo: BeanDemo
val bundle = arguments
beanDemo = bundle!!.getSerializable("serializedObject") as BeanDemo
val name = beanDemo.getName()
// Inflate the layout for this fragment
val rootView = inflater.inflate(R.layout.send_fragment, container, false)
val recyclerView = rootView.findViewById<RecyclerView>(R.id.transaction_recycler_out) as RecyclerView
linearLayoutManager = LinearLayoutManager(activity, LinearLayout.VERTICAL, false)
recyclerView.layoutManager = linearLayoutManager
//recyclerView.adapter = DuplicateTransactionRecyclerAdapter(NewIT,NewAPPDB,NewINCOMTYPE,NewNETWORKPROVSTR)
recyclerView.setHasFixedSize(true)
return rootView
}
}
Проблема: я могу установить значение в экземпляре класса во фрагменте, но не могу получить данные в OnCretaview (). Nullзначение является возвращением.пожалуйста, направьте меня, что я делаю ошибки.Заранее спасибо
ОБНОВЛЕНИЕ
@Database(entities = {AddressBookEntry.class, Token.class, Balance.class, TransactionEntity.class}, version = 1)
@TypeConverters({RoomTypeConverters.class})
public abstract class AppDatabase extends RoomDatabase implements Serializable {
public abstract AddressBookDAO getAddressBook();
public abstract TokenDAO getTokens();
public abstract TransactionDAO getTransactions();
public abstract BalanceDAO getBalances();
}