从Android中的ListView适配器启动自定义警报对话框

用户4388663

我在做什么::

  • 我有一个列表视图
  • 我在列表视图的每一行都有一个按钮
  • 我正在尝试从列表视图的适配器中单击按钮时弹出一个对话框

怎么了:

  • 单击按钮时,我得到错误,如日志中所示

在片段中,我以这种方式设置适配器

mAdapter = new AdptJobDetail(getActivity().getApplicationContext(),lstData,usrLat,usrLng);      
            lst.setAdapter(mAdapter);

在列表视图适配器中

Context context;
    ArrayList<HashMap<String, String>> lstData;
    private LayoutInflater mInflater;
    String subString;
    String usrLat;
    String usrLng;
    Dialog dialog=null;

    public AdptJobDetail(Context _context,ArrayList<HashMap<String, String>> _lstData, String _usrLat, String _usrLng) {
        context=_context;
        mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        lstData=_lstData;
        usrLat=_usrLat;
        usrLng=_usrLng;
    }



<!-----other code ---->


    viewHolder.btnAssignId.setOnClickListener(new OnClickListener() {

                    @Override
                    public void onClick(View v) {

                    Toast.makeText(context, "Clicked", Toast.LENGTH_SHORT).show();

                    ShowConfirmDialog();
                    }
                });


    private void ShowConfirmDialog() {

            dialog = new Dialog(context,android.R.style.Theme_Dialog);
            dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
            dialog.setContentView(R.layout.dialog_confirm_register_vendor);


            Button btnSubmit=(Button)dialog.findViewById(R.id.btn_submit);

            btnSubmit.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub

                }
            });


            dialog.setCanceledOnTouchOutside(false);
            dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
            dialog.getWindow().setLayout(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT);
            dialog.show();
        }

日志:

12-24 11:13:21.984: E/AndroidRuntime(7477): Process: com.windhyaworks, PID: 7477
12-24 11:13:21.984: E/AndroidRuntime(7477): android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
12-24 11:13:21.984: E/AndroidRuntime(7477):     at android.view.ViewRootImpl.setView(ViewRootImpl.java:554)
12-24 11:13:21.984: E/AndroidRuntime(7477):     at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:259)
12-24 11:13:21.984: E/AndroidRuntime(7477):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
12-24 11:13:21.984: E/AndroidRuntime(7477):     at android.app.Dialog.show(Dialog.java:286)
12-24 11:13:21.984: E/AndroidRuntime(7477):     at com.windhyaworks.adapters.AdptJobDetail.ShowConfirmDialog(AdptJobDetail.java:216)
12-24 11:13:21.984: E/AndroidRuntime(7477):     at com.windhyaworks.adapters.AdptJobDetail.access$0(AdptJobDetail.java:195)
12-24 11:13:21.984: E/AndroidRuntime(7477):     at com.windhyaworks.adapters.AdptJobDetail$2.onClick(AdptJobDetail.java:184)
12-24 11:13:21.984: E/AndroidRuntime(7477):     at android.view.View.performClick(View.java:4456)
12-24 11:13:21.984: E/AndroidRuntime(7477):     at android.view.View$PerformClick.run(View.java:18465)
12-24 11:13:21.984: E/AndroidRuntime(7477):     at android.os.Handler.handleCallback(Handler.java:733)
12-24 11:13:21.984: E/AndroidRuntime(7477):     at android.os.Handler.dispatchMessage(Handler.java:95)
12-24 11:13:21.984: E/AndroidRuntime(7477):     at android.os.Looper.loop(Looper.java:136)
12-24 11:13:21.984: E/AndroidRuntime(7477):     at android.app.ActivityThread.main(ActivityThread.java:5086)
12-24 11:13:21.984: E/AndroidRuntime(7477):     at java.lang.reflect.Method.invokeNative(Native Method)
12-24 11:13:21.984: E/AndroidRuntime(7477):     at java.lang.reflect.Method.invoke(Method.java:515)
12-24 11:13:21.984: E/AndroidRuntime(7477):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
12-24 11:13:21.984: E/AndroidRuntime(7477):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
12-24 11:13:21.984: E/AndroidRuntime(7477):     at dalvik.system.NativeStart.main(Native Method)
ρяσsρєяK

使用getActivity()而不是getActivity().getApplicationContext()Adapter构造函数中的第一个参数:

mAdapter = new AdptJobDetail(getActivity(),lstData,usrLat,usrLng);      
lst.setAdapter(mAdapter);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Android中的“自定义警报”对话框

在服务android中显示自定义警报对话框

Android-如何在自定义警报对话框中检查按钮单击?

如何关闭“自定义警报”对话框

从自定义基本适配器> getView上单击按钮,启动对话框片段[包含IMG]

如何自定义警报对话框,以使按钮适合警报对话框

与自定义适配器的警报对话

通过android自定义警报对话框传递额外数据

如何在Android中使用网格视图创建自定义警报对话框?

如何在自定义警报对话框中刷新内容/ UI

在自定义警报对话框中获取单选按钮的值

在自定义警报对话框中从 Edittext 检索数据时显示空值?

如何在适配器中正确显示自定义对话框

使 Multiautocompletetextview 在警报对话框中添加按钮上方可滚动,我想要这种类型的自定义警报对话框

Android Studio中带有自定义适配器的自定义ListView

如何将自定义警报对话框中的项目添加到列表视图?

制作圆形自定义警报对话框:着色区域不正确

Flutter-自定义警报对话框未显示

在自定义警报对话框中使用时 ExpandableListView 对象为 null

具有RecyclerView的自定义警报对话框

自定义警报对话框不会关闭

具有多个EditText的自定义警报对话框

两个活动的一个自定义警报对话框

如何制作自定义警报对话框全屏

自定义警报对话框搜索项目结果错误

自定义警报对话框的背景色

具有多个视图的自定义警报对话框

如何在Xamarin Android中基于设备的宽度和高度以编程方式创建自定义警报对话框?

获取值并使用回收视图和自定义适配器关闭对话框