DialogFragment onClick侦听器不适用于ImageButton

尼克·帕科霍夫(Nick Pakhomov)

我想我尝试了这里提供的所有内容。我的活动中有ImageButton,但无法将其设置为切换到另一个活动(Log.d显示甚至没有单击它)。

这是我的对话框:

    public class StarsActivity extends DialogFragment implements OnClickListener {

    Dialog dialog;
    Activity mActivity;

    ImageButton nextQuestion;

    final String LOG_TAG = "myLogs";

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.activity_stars, null);

        setCancelable(true);
        return view;
    }

    /** The system calls this only when creating the layout in a dialog. */
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        // The only reason you might override this method when using onCreateView() is
        // to modify any dialog characteristics. For example, the dialog includes a
        // title by default, but your custom layout might not need it. So here you can
        // remove the dialog title, but you must call the superclass to get the Dialog.
        dialog = super.onCreateDialog(savedInstanceState);

        //Setting transparency for dialog background
        dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
        dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);

        //No title for dialog
        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);

        dialog.setContentView(R.layout.activity_stars);
        dialog.getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);


        nextQuestion = (ImageButton)dialog.findViewById(R.id.nextQuestion);
        Log.d(LOG_TAG, nextQuestion.toString());
        nextQuestion.setOnClickListener(this);

        mActivity = getActivity();

        return dialog;
    }


    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.nextQuestion:
                Log.d(LOG_TAG, "Dialog 2: ");
                mActivity = getActivity();
                Intent i = new Intent(mActivity, FinalActivity.class);
                mActivity.startActivity(i);
                this.dismiss();
                break;
            default:
                break;
        }
    }
}

这是我的ImageButton xml:

<ImageButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/nextQuestion"
            android:background="@null"
            android:src="@drawable/ic_content_nextbutton_02"
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="20dp" />

我希望有办法解决。

nvinayshetty

我认为您无需在StarsActivity中拥有Dialog的实例,而该实例已经从Dialog片段扩展了。下面的代码完成了您想要的一切

public class StarsActivity extends DialogFragment implements View.OnClickListener {
    Activity mActivity;
    ImageButton nextQuestion;

    final String LOG_TAG = "myLogs";

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.activity_stars, null);
        nextQuestion = (ImageButton)view.findViewById(R.id.nextQuestion);
        Log.d(LOG_TAG, nextQuestion.toString());
        nextQuestion.setOnClickListener(this);
        setCancelable(true);
        return view;
    }


    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.nextQuestion:
                Log.d(LOG_TAG, "Dialog 2: ");
                mActivity = getActivity();
                Intent i = new Intent(mActivity, FinalActivity.class);
                mActivity.startActivity(i);
                this.dismiss();
                break;
            default:
                break;
        }
    }
}

请考虑将StarsActivity重命名为StarsDialog或其他名称。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

屏幕旋转后保留侦听器-带有DatePicker的DialogFragment

来自分类Dev

android DialogFragment android:onClick =“ buttonCancel”导致IllegalStateException找不到方法

来自分类Dev

关键侦听器不适用于布局

来自分类Dev

事件侦听器不适用于锚点

来自分类Dev

元素事件侦听器回调不适用于自定义事件

来自分类Dev

Libgdx手势侦听器不适用于手机,但适用于桌面

来自分类Dev

为左或右键单击附加事件侦听器-onclick不适用于右键单击

来自分类Dev

AngularJS $ location不适用于google.maps.event侦听器

来自分类Dev

Android事件总线不适用于两个事件侦听器

来自分类Dev

ListView onClick辅助的DialogFragment不起作用

来自分类Dev

Elastic Load Balancer侦听器不适用于一个端口

来自分类Dev

适用于ViewPager的Android事件侦听器数据绑定

来自分类Dev

线性布局onclick侦听器不适用于回收视图

来自分类Dev

自定义视图单击侦听器,不适用于当前选项卡

来自分类Dev

适用于Oracle DB的Solaris SMF可以,但不适用于侦听器。SMF方法如何在svcadm下工作,但在失败时不重启服务?

来自分类Dev

Discord Java Bot-侦听器适用于DM,但不适用于公会消息?

来自分类Dev

更改侦听器不适用于JQuery Mobile中动态添加的内容

来自分类Dev

DensityPixel似乎不适用于ImageButton

来自分类Dev

SelectOneMenu标签中的PrimeFaces Ajax侦听器不适用于viewParam

来自分类Dev

元素事件侦听器回调不适用于自定义事件

来自分类Dev

选择器不适用于ImageButton-Android

来自分类Dev

尝试为JMS队列设置侦听器时,此方法不适用于应用服务器内部

来自分类Dev

ListView onClick辅助的DialogFragment不起作用

来自分类Dev

Easeljs中的位图不适用于事件侦听器吗?

来自分类Dev

OnClick()不适用于货币转换器。

来自分类Dev

侦听器不适用于文本字段

来自分类Dev

onclick侦听器不适用于动态dom内容

来自分类Dev

Fragment 接口/侦听器适用于 Activity,但不适用于另一个 Fragment

来自分类Dev

事件侦听器无法正常工作,适用于 chrome,不适用于 Firefox

Related 相关文章

  1. 1

    屏幕旋转后保留侦听器-带有DatePicker的DialogFragment

  2. 2

    android DialogFragment android:onClick =“ buttonCancel”导致IllegalStateException找不到方法

  3. 3

    关键侦听器不适用于布局

  4. 4

    事件侦听器不适用于锚点

  5. 5

    元素事件侦听器回调不适用于自定义事件

  6. 6

    Libgdx手势侦听器不适用于手机,但适用于桌面

  7. 7

    为左或右键单击附加事件侦听器-onclick不适用于右键单击

  8. 8

    AngularJS $ location不适用于google.maps.event侦听器

  9. 9

    Android事件总线不适用于两个事件侦听器

  10. 10

    ListView onClick辅助的DialogFragment不起作用

  11. 11

    Elastic Load Balancer侦听器不适用于一个端口

  12. 12

    适用于ViewPager的Android事件侦听器数据绑定

  13. 13

    线性布局onclick侦听器不适用于回收视图

  14. 14

    自定义视图单击侦听器,不适用于当前选项卡

  15. 15

    适用于Oracle DB的Solaris SMF可以,但不适用于侦听器。SMF方法如何在svcadm下工作,但在失败时不重启服务?

  16. 16

    Discord Java Bot-侦听器适用于DM,但不适用于公会消息?

  17. 17

    更改侦听器不适用于JQuery Mobile中动态添加的内容

  18. 18

    DensityPixel似乎不适用于ImageButton

  19. 19

    SelectOneMenu标签中的PrimeFaces Ajax侦听器不适用于viewParam

  20. 20

    元素事件侦听器回调不适用于自定义事件

  21. 21

    选择器不适用于ImageButton-Android

  22. 22

    尝试为JMS队列设置侦听器时,此方法不适用于应用服务器内部

  23. 23

    ListView onClick辅助的DialogFragment不起作用

  24. 24

    Easeljs中的位图不适用于事件侦听器吗?

  25. 25

    OnClick()不适用于货币转换器。

  26. 26

    侦听器不适用于文本字段

  27. 27

    onclick侦听器不适用于动态dom内容

  28. 28

    Fragment 接口/侦听器适用于 Activity,但不适用于另一个 Fragment

  29. 29

    事件侦听器无法正常工作,适用于 chrome,不适用于 Firefox

热门标签

归档