Java 如何为不在main_activity.xml中的视图设置OnClickListener?

Java 如何为不在main_activity.xml中的视图设置OnClickListener?,java,android,xml,onclicklistener,imagebutton,Java,Android,Xml,Onclicklistener,Imagebutton,正如标题所说,我试图为另一个XML文件中的视图设置OnClickListener。我尝试了下面的代码,虽然我没有得到任何异常,但它不起作用 LayoutInflater layoutInflater = getLayoutInflater(); View view = layoutInflater.inflate(R.layout.single_row,null,false); mImageButton = (ImageButton)view.findViewById(R.id

正如标题所说,我试图为另一个XML文件中的视图设置OnClickListener。我尝试了下面的代码,虽然我没有得到任何异常,但它不起作用

 LayoutInflater layoutInflater = getLayoutInflater();
    View view = layoutInflater.inflate(R.layout.single_row,null,false);
    mImageButton = (ImageButton)view.findViewById(R.id.shareImageButton);
    mImageButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Snackbar.make(v, "working on it", Snackbar.LENGTH_LONG)
                    .setAction("Action", null).show();
        }
    });

我的ImageButton位于另一个XML文件中。NEEEEEED HELP

通过将另一个\u row.xml包含在主\u activity.xml文件中来使用它

将以下代码粘贴到主_activity.xml文件中:

<include layout:"@layout/single_row.xml" />

根据提供的内容,您似乎没有将视图添加到父布局中

假设父布局已经膨胀,只需添加视图,如下所示

yourParentView.addView(view);
但这可能不会产生预期的效果,因为这很可能(如果您没有使用父视图的重力)将视图放置在左上角

您需要通过LayoutParams将视图放置在所需的位置

例如RelativeLayout.LayoutParams或LinearLayout.LayoutParams

一旦选择并创建了layoutParams,就可以使用它了

yourParentView.addView(view, createdLayoutParams);

您实际上想做什么?您的代码将设置onclicklistener,但它不会将视图添加到UI中。要做到这一点,您必须将视图添加到父级。但是如何将视图添加到父级?即使我想在控制台上显示一条消息,它也不起作用。该消息来自的xml是否已经膨胀?是的,单行用于显示recycleview项。我想是适配器充气了。我发现了问题。我将用于设置侦听器的代码移到了我的recycleview.adapter类中,它运行良好。我发现了问题。我将用于设置侦听器的代码移到了我的recycleview.adapter类中,很高兴在这里找到了解决方案。希望我的回答能帮助别人。:)
yourParentView.addView(view, createdLayoutParams);