Java 如何在类和活动之间传递字符串的ArrayList?
我在Java 如何在类和活动之间传递字符串的ArrayList?,java,android,android-intent,Java,Android,Android Intent,我在类和活动之间传递数组列表时遇到问题。 我知道我可以使用Intent在活动之间传递数组,但我不知道如何使用类和活动。请帮忙 这是我的课 public class MultipleChoiceDialogFragment extends DialogFragment implements Serializable { public interface onMultiChoiceListener{ void onPositiveButtonClicked(Strin
类
和活动
之间传递数组列表时遇到问题。
我知道我可以使用Intent
在活动
之间传递数组,但我不知道如何使用类
和活动
。请帮忙
这是我的课
public class MultipleChoiceDialogFragment extends DialogFragment implements Serializable {
public interface onMultiChoiceListener{
void onPositiveButtonClicked(String[] list , ArrayList<String> selectedItemList);
void onNegativeButtonClicked()
;
}
onMultiChoiceListener mlistner;
@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
try {
mlistner = (onMultiChoiceListener) context;
} catch (Exception e) {
e.printStackTrace();
throw new ClassCastException(getActivity().toString()+"onMultiChoiceListener must implemented");
}
}
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
final ArrayList<String> selectedItemList = new ArrayList<>();
// Intent i = new Intent(getContext(),MultipleChoiceDialogFragment.class);
// i.putStringArrayListExtra("arrayfinal",selectedItemList);
AlertDialog.Builder mbuilder = new AlertDialog.Builder(getActivity());
final String[] list = getActivity().getResources().getStringArray(R.array.selectableRole);
mbuilder.setTitle("Chose Role").setMultiChoiceItems(list, null, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int i, boolean b) {
if (b){
selectedItemList.add(list[i]);
}else {
selectedItemList.remove(list[i]);
}
}
})
.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int i) {
mlistner.onPositiveButtonClicked(list, selectedItemList);
}
})
.setNegativeButton("Dismiss", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
mlistner.onNegativeButtonClicked();
}
});
return mbuilder.create();
}
}
公共类multipleChiiceDialogFragment扩展DialogFragment实现可序列化{
MultiChoiceListener上的公共接口{
void onPositiveButtonClicked(字符串[]列表,ArrayList selectedItemList);
void onNegativeButtonClicked()
;
}
onMultiChoiceListener-mlistner;
@凌驾
public void onAttach(@NonNull上下文){
super.onAttach(上下文);
试一试{
mlistner=(onMultiChoiceListener)上下文;
}捕获(例外e){
e、 printStackTrace();
抛出新的ClassCastException(必须实现getActivity().toString()+“onMultiChoiceListener”);
}
}
@非空
@凌驾
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState){
最终ArrayList selectedItemList=新ArrayList();
//Intent i=新的Intent(getContext(),multipleEchoiceDialogFragment.class);
//i.putStringArrayListExtra(“arrayfinal”,selectedItemList);
AlertDialog.Builder mbuilder=新建AlertDialog.Builder(getActivity());
最终字符串[]列表=getActivity().getResources().getStringArray(R.array.selectableRole);
mbuilder.setTitle(“选择的角色”).setMultiChoiceItems(列表,空,新的DialogInterface.OnMultiChoiceClickListener(){
@凌驾
公共void onClick(DialogInterface dialog,int i,boolean b){
如果(b){
选择编辑列表。添加(列表[i]);
}否则{
选择编辑列表。删除(列表[i]);
}
}
})
.setPositiveButton(“确定”,新的DialogInterface.OnClickListener(){
@凌驾
公共void onClick(对话框接口对话框,int i){
mlistner.onPositiveButtonClicked(列表,selectedItemList);
}
})
.setNegativeButton(“disease”,新的DialogInterface.OnClickListener(){
@凌驾
public void onClick(DialogInterface dialog,int which){
mlistner.onNegativeButtonClicked();
}
});
返回mbuilder.create();
}
}
我想在另一项活动中使用最终列表这是否回答了您的问题?向我们展示您的课程
,并提供更多信息;您需要哪个输出。您必须提供示例代码和场景。您可以通过实现Parcellable将自定义类传递给Activity,但它可能不适合您的场景。这是我的类