Java 如何将对象从ViewHolder类发送到其他活动
因此,我想从另一个使用带有ViewHolder的recyclerView的活动向主活动发送一个对象(人),然后使用ViewHolder关闭活动并在主活动的textView上打印文本,我不知道如何将一个对象从一个视图持有者发送到另一个活动,所以我尝试使用一个界面,但我遇到了这个错误,我不知道如何修复它,也不知道原因是什么: java.lang.NullPointerException:尝试对空对象引用调用虚拟方法“java.lang.String android.content.Context.getPackageName()” 指向此行:对象从ViewHolder(selectedPerson)发送数据 视图持有者类Java 如何将对象从ViewHolder类发送到其他活动,java,android,interface,android-viewholder,Java,Android,Interface,Android Viewholder,因此,我想从另一个使用带有ViewHolder的recyclerView的活动向主活动发送一个对象(人),然后使用ViewHolder关闭活动并在主活动的textView上打印文本,我不知道如何将一个对象从一个视图持有者发送到另一个活动,所以我尝试使用一个界面,但我遇到了这个错误,我不知道如何修复它,也不知道原因是什么: java.lang.NullPointerException:尝试对空对象引用调用虚拟方法“java.lang.String android.content.Context.g
class PersonaViewHolder extends RecyclerView.ViewHolder{
public Person selectedPerson;
public ArrayList<SendData_FromViewholder> array = new ArrayList();
public PersonaViewHolder(@NonNull View itemView) {
super(itemView);
ActivityMain actMain = new ActivityMain();
this.addInterfaz(actMain);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
selectedPerson = (Person) v.getTag();
for(SendData_FromViewholder obj : array){
obj.SendData_FromViewholder(selectedPerson);
}
((Activity_PersonList)v.getContext()).finish(); // activity of the recyclerView
}
});
}
public void addInterfaz(SendData_FromViewholder interface){
array.add(interface);
}
}
public interface SendData_FromViewholder {
void getPersonFromViewholder(Person person);
}
接口类
class PersonaViewHolder extends RecyclerView.ViewHolder{
public Person selectedPerson;
public ArrayList<SendData_FromViewholder> array = new ArrayList();
public PersonaViewHolder(@NonNull View itemView) {
super(itemView);
ActivityMain actMain = new ActivityMain();
this.addInterfaz(actMain);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
selectedPerson = (Person) v.getTag();
for(SendData_FromViewholder obj : array){
obj.SendData_FromViewholder(selectedPerson);
}
((Activity_PersonList)v.getContext()).finish(); // activity of the recyclerView
}
});
}
public void addInterfaz(SendData_FromViewholder interface){
array.add(interface);
}
}
public interface SendData_FromViewholder {
void getPersonFromViewholder(Person person);
}
您可以将对象从视图持有者传递到活动,就像使用意图将对象从活动传递到另一个活动一样,并将对象作为可序列化的对象传递
(必须使person类实现可序列化)
ActivityMain actMain=new ActivityMain()代码>–您不能这样做<代码>活动
类必须由系统实例化和初始化,才能正常工作。如果使用RecyclerView
的活动
是从ActivityMain
启动的,您可以使用startActivityForResult()
/setResult()
将所选数据发送回ActivityMain
;e、 例如,在这些帖子中可以看到:。