Android 从自定义ArrayAdapter内部关闭对话框
我有一个自定义对话框片段,里面有一个自定义的ArrayAdapter。每个列表项都有3个按钮。单击每个按钮,我就有一个执行函数的Android 从自定义ArrayAdapter内部关闭对话框,android,dialog,android-arrayadapter,Android,Dialog,Android Arrayadapter,我有一个自定义对话框片段,里面有一个自定义的ArrayAdapter。每个列表项都有3个按钮。单击每个按钮,我就有一个执行函数的OnClickListener()。函数完成后,我需要关闭对话框。因为这是在ArrayAdapter中完成的,所以我不能像在对话框片段中那样调用discouse()。我尝试为对话框片段内的按钮设置一个OnClickListener(),但得到了一个空指针 我不知道如何从自定义arrayAdapter中获取对对话框片段的引用。onclick事件必须发生在ArrayAdap
OnClickListener()
。函数完成后,我需要关闭对话框。因为这是在ArrayAdapter中完成的,所以我不能像在对话框片段中那样调用discouse()
。我尝试为对话框片段内的按钮设置一个OnClickListener()
,但得到了一个空指针
我不知道如何从自定义arrayAdapter中获取对对话框片段的引用。onclick事件必须发生在ArrayAdapter内部,因为它使用特定于该列表项的信息。任何帮助都将不胜感激。多谢各位
对话框片段:
public class SavedArmyDialog extends DialogFragment {
View mView;
public static SavedArmyDialog newInstance() {
SavedArmyDialog fragment = new SavedArmyDialog();
return fragment;
}
public SavedArmyDialog() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
mView = inflater.inflate(R.layout.custom_army_list, container, false);
CustomArmyObjData customArmyObjData = new CustomArmyObjData();
ArrayList<CustomArmy> customArmyArray = customArmyObjData.getCustomArmyArray(getActivity());
CustomArmyAdapter adapter = new CustomArmyAdapter(getActivity(), customArmyArray);
ListView armyList = (ListView) mView.findViewById(R.id.armyListView);
armyList.setAdapter(adapter);
return mView;
}
}
我不知道如何从中获取对对话框片段的引用
在自定义阵列适配器内部
还有一个方法,需要在想要关闭DialogFragment
时调用它
在您的情况下,请按照以下步骤操作:
1.向CustomArmyAdapter
类构造函数添加一个参数,该类构造函数是SavedArmyDialog
的类型:
private SavedArmyDialog objSavedArmyDialog;
public CustomArmyAdapter(SavedArmyDialog objSavedArmyDialog,...){
this.objSavedArmyDialog=objSavedArmyDialog;
....
}
2.Now classobjSavedArmyDialog.dismise()
内onClick按钮的
:
public void onClick(View v) {
....
//need to close the dialog from here
objSavedArmyDialog.dismiss();
}
3.通过将当前类上下文传递为以下内容来创建CustomArmyAdapter
类对象:
CustomArmyAdapter adapter=new CustomArmyAdapter(SavedArmyDialog.this,
getActivity(),
customArmyArray);
我不知道如何从中获取对对话框片段的引用
在自定义阵列适配器内部
还有一个方法,需要在想要关闭DialogFragment
时调用它
在您的情况下,请按照以下步骤操作:
1.向CustomArmyAdapter
类构造函数添加一个参数,该类构造函数是SavedArmyDialog
的类型:
private SavedArmyDialog objSavedArmyDialog;
public CustomArmyAdapter(SavedArmyDialog objSavedArmyDialog,...){
this.objSavedArmyDialog=objSavedArmyDialog;
....
}
2.Now classobjSavedArmyDialog.dismise()
内onClick按钮的
:
public void onClick(View v) {
....
//need to close the dialog from here
objSavedArmyDialog.dismiss();
}
3.通过将当前类上下文传递为以下内容来创建CustomArmyAdapter
类对象:
CustomArmyAdapter adapter=new CustomArmyAdapter(SavedArmyDialog.this,
getActivity(),
customArmyArray);
请用代码示例和logcat清楚地解释这个问题。显示来自自定义ArrayAdapter的对话框片段?请在显示的位置显示代码,并希望关闭在对话框片段和自定义阵列适配器的相关代码中添加的itI。我还可以在需要关闭对话框的地方添加注释。谢谢。@EphraimSchmitt:请看我的答案,它可能会帮助您用代码示例和logcat清楚地解释这个问题。显示来自自定义ArrayAdapter的对话框片段?请在显示的位置显示代码,并希望关闭在对话框片段和自定义阵列适配器的相关代码中添加的itI。我还可以在需要关闭对话框的地方添加注释。谢谢。@EphraimSchmitt:看看我的答案,也许对你有帮助