在“ViewStub”上安装的“布局”中,通过“findViewById”找到的按钮不起作用

问题描述 投票:0回答:1

我为

setLayoutResource(R.layout.content_no_connection)
设置
ViewStub
,然后为
inflate()
,并在
onInflate()
中设置
content_no_connection
中按钮的逻辑。并且按钮不响应点击。 代码:

public void setRebootIncludeLoad(ViewStub includeLoad) {
    includeLoad.setLayoutResource(R.layout.content_no_connection);
    includeLoad.setOnInflateListener(new ViewStub.OnInflateListener() {
        @Override
        public void onInflate(ViewStub viewStub, View view) {

          AppCompatButton btnRebootInternet = view.findViewById(R.id.btn_reboot_internet);
          btnRebootInternet.setFocusable(true);
          btnRebootInternet.setClickable(true);
          btnRebootInternet.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
                         
               Reboot();
             }
          });
        }
   });

   includeLoad.inflate();
}

请告诉我可能是什么问题以及如何解决,谢谢!我明白问题是我找不到我需要的按钮,但是按钮上有颜色

selector
,按下时颜色会变化,甚至颜色没有变化,按钮根本没有反应。

java android-studio inflate viewstub
1个回答
0
投票

问题已解决,您应该添加:

((ViewGroup) view.getParent()).removeView(view);
activity.setContentView(view);

onInflate()
之前
AppCompatButton btnRebootInternet = view.findViewById(R.id.btn_reboot_nternet);

© www.soinside.com 2019 - 2024. All rights reserved.