当我尝试从另一个活动中获取数据时,应用程序返回上一页
Posted
技术标签:
【中文标题】当我尝试从另一个活动中获取数据时,应用程序返回上一页【英文标题】:The app back to previous page when I attempt to fetch data from another activity 【发布时间】:2021-11-16 14:31:30 【问题描述】:我有 1 个适配器文件,包含以下代码:
//When user click detailBtn, it will pass the data to EventDetail page.
holder.detailBtn.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
Intent intent = new Intent(holder.detailBtn.getContext(), EventDetail.class);
intent.putExtra("eventName", datalist.get(position).getEventName());
intent.putExtra("eventDate", datalist.get(position).getEventDate());
intent.putExtra("eventVenue", datalist.get(position).getEventVenue());
intent.putExtra("eventDesc", datalist.get(position).getEventDesc());
intent.putExtra("eventRole", datalist.get(position).getEventRoles());
intent.putExtra("eventCreator", datalist.get(position).getEventCreator());
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
holder.detailBtn.getContext().startActivity(intent);
);
主要问题出现在这里,导致问题的代码如下::
所以,当我尝试使用以下代码访问“eventRole”字段并将其放入 EventDetail java 文件中的 ArrayAdapter 时:
String[] roles = (String[]) getIntent().getStringArrayExtra("eventRole");
ArrayAdapter adapter = new ArrayAdapter(this, R.layout.option_item, roles);
应用程序跳回上一页 :( 任何人都可以帮助我了解为什么当我尝试访问它时它会返回到以前的活动?我在它显示给我的 logcat 上找不到任何线索...
“eventRole”数组作为 Map Structure 存储在 Firestore 中。
【问题讨论】:
如果应用程序崩溃,会有一个堆栈跟踪。请在 logcat 上查找,并将其添加到您的问题中。 @AlexMamo 已添加。 请同时指出它出现在哪一行代码。 【参考方案1】:您确定您的 getEventRoles()
方法返回 String[] 吗?据我了解,即使getStringArrayExtra()
正在返回 String[],您也已将 getIntent().getStringArrayExtra("eventRole");
转换为 String[],为什么?
我认为问题出在您的 getEventRoles()
方法中,它可能没有返回 String[],而您正试图 将该不兼容的类型转换为抛出 ClassCastException
的 String[]。
【讨论】:
是的,我的getEventRoles()
方法在我的 EventModel 中返回 String [],代码如下:public String[] getEventRoles() return eventRole; public void setEventRoles(String[] eventRole) this.eventRole = eventRole; public EventModel() public EventModel(String[] eventRole) this.eventRole = eventRole;
请显示EventDetail.java的第115行
String[] roles = getIntent().getStringArrayExtra("eventRole");
@RAHIL 这一行,我在主要问题中也提到了。
检查您的getIntent()
是否返回null
!以上是关于当我尝试从另一个活动中获取数据时,应用程序返回上一页的主要内容,如果未能解决你的问题,请参考以下文章