putExtra传递对象android studio+ firebase

vngu2lb8  于 2023-01-05  发布在  Android
关注(0)|答案(1)|浏览(125)

我正在做一个简单的crud android项目我是绝对的初学者,所以我看了一个tuto上youtub
我发现他把unobject传递给intent. putextra
像这样

Employee emp = e==null? list.get(position):e;
case R.id.menu_edit:
                        Intent intent=new Intent(context,MainActivity.class);
                        intent.putExtra("EDIT",emp);
                        context.startActivity(intent);
                        break;

code source from here https://github.com/Sovary/FireTestRecyclerView/blob/main/app/src/main/java/com/hellokh/sovary/firetest/RVAdapter.java#L56
而且它对我不起作用! intent.putExtra在我的代码中不能在其中保存对象,它只支持字符串或其他东西。如何传递此参数?
我试着把它改成char或者给一个attribut,但是没有希望hh

7y4bm7vi

7y4bm7vi1#

图书馆:

implementation 'com.google.code.gson:gson:2.10'

将对象数据转换为字符串并通过Intent将数据作为字符串发送:

case R.id.menu_edit:
                        Intent intent = new Intent(context,MainActivity.class);
                        
                        Gson gson = new Gson();
                        //transform a java object to json
                        String employee_string = gson.toJson(Employee.class);
                        
                        intent.putExtra("EDIT",employee_string);
                        context.startActivity(intent);
                        break;

在目标页面get上,通过gson将字符串转换为object并检索数据:

String data = getIntent().getStringExtra("EDIT");
//Transform a json to java object
Employee employee= gson.fromJson(json_ data, Employee.class); // here is your data as object

相关问题