Android - 从线性布局中删除膨胀的布局xml

Hay*_*nsu 1 xml android android-layout android-studio

我将internetnotconnected.xml虚拟化为线性布局.我想在用户点击按钮时删除View夸大的布局.但我的方式不起作用.

if (!EZInternetConnection.isNetworkConnected(context)) {
            LinearLayout LLPureCard = (LinearLayout) ((Activity) context).findViewById(R.id.ll_main_activity_pure_card);
            LinearLayout LLPureCardContent = (LinearLayout) ((Activity) context).findViewById(R.id.ll_main_activity_pure_card_content);
            LLPureCardContent.setVisibility(View.GONE);
            LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            inflater.inflate(R.layout.internetnotconnected, LLPureCard);
            Button button = (Button) ((Activity) context).findViewById(R.id.b_internet_not_connected_try_connection);
            button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (EZInternetConnection.isNetworkConnected(context)) {

                        LinearLayout LLPureCard = (LinearLayout) ((Activity) context).findViewById(R.id.ll_main_activity_pure_card);
                        LinearLayout LLPureCardContent = (LinearLayout) ((Activity) context).findViewById(R.id.ll_main_activity_pure_card_content);
                        int id = context.getResources().getIdentifier("internetnotconnected", "layout", context.getPackageName());
                        LLPureCard.removeView(((Activity) context).findViewById(id));
                        LLPureCardContent.setVisibility(View.VISIBLE);
                        Get20Words();
                    }
                }
            });
            this.onCancelled();
        }
Run Code Online (Sandbox Code Playgroud)

Ira*_*eau 6

我会尝试这样做,替换

inflater.inflate(R.layout.internetnotconnected, LLPureCard);
Run Code Online (Sandbox Code Playgroud)

final View addedView = inflater.inflate(R.layout.internetnotconnected, null);
LLPureCard.addView(addedView);
Run Code Online (Sandbox Code Playgroud)

然后在onClick方法中替换该行

LLPureCard.removeView(((Activity) context).findViewById(id));
Run Code Online (Sandbox Code Playgroud)

LLPureCard.removeView(addedView);
Run Code Online (Sandbox Code Playgroud)