setVisibility (View.GONE) не работает! Зачем? - PullRequest
0 голосов
/ 11 июля 2020

Я могу поклясться всем, что вам нравится, что этот код работал с моим предыдущим приложением, над которым я работал, но теперь он вообще ничего не будет делать. Это должно быть простая вещь, которую я, должно быть, забыл перед использованием этого кода, но я не знаю, что это было.

то, что я пытаюсь сделать sh, это убрать кнопку и сделать макет видимым.

вот мой xml:

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#E675E8">

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="#FFFFFF"
        android:layout_marginBottom="2dp">

        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1.0">

            <ImageView
                android:src="@drawable/natlilandbarpic"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>

        </LinearLayout>

        <Button
            android:layout_width="50dp"
            android:layout_height="wrap_content"
            android:background="@drawable/drawbtn"
            android:id="@+id/drawbutton"
            android:visibility="visible"/>

    </LinearLayout>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="right"
        android:layout_weight="1.0">

        <WebView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="Text"
            android:id="@+id/webView"/>

        <LinearLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:visibility="gone"
            android:gravity="left"
            android:layout_marginLeft="100dp"
            android:id="@+id/drawlist">

            <Button
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Button"/>

            <Button
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Button"/>

            <Button
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Button"/>

        </LinearLayout>

    </RelativeLayout>

</LinearLayout>

вот мои действия:

    public class MainActivity extends Activity 
    {
        private WebView webView;
        private Button drawbutton;
        private LinearLayout drawlist;
        
        @Override
        protected void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            getActionBar().hide();
            
            
            webView = (WebView) findViewById(R.id.webView);
            webView.getSettings().setJavaScriptEnabled(true);
            webView.loadUrl("");
            webView.setWebViewClient(new WebViewClient(){
    
                    @Override
                    public boolean shouldOverrideUrlLoading(WebView view, String url){
                        view.loadUrl(url);
                        return true;
                    }
                });
            }
                
        public void addListenerOnButton() {
            
            drawbutton = (Button) findViewById(R.id.drawbutton);
            drawbutton.setOnClickListener(new OnClickListener() {
                    @Override
                    public void onClick(View p) {   
                    drawbuttonprop(p);
                    }
                });
            drawlist = (LinearLayout) findViewById(R.id.drawlist);
        }
        public void drawbuttonprop(View view)
        {
            drawbutton.setVisibility(View.GONE);
            drawlist.setVisibility(View.VISIBLE);
        }

}

Любая помощь и уловки, чтобы заставить его работать, я был бы признателен.

1 Ответ

0 голосов
/ 11 июля 2020

Прежде всего, я предполагаю причину, по которой вы это испытываете, потому что вы не вызываете функцию addListenerOnButton (), поэтому вы должны вызывать ее в своем oncreate, во-вторых, вы вызываете функцию, которая также устанавливает видимость списка рисования как видимую после нажатия кнопки, но вы должны знать, что вы пытаетесь найти ссылку в списке рисования после нажатия кнопки, и это приведет к тому, что приложение выдаст ошибку sh, поэтому вам нужно поместить эту строку кода «drawlist = (LinearLayout) findViewById (R.id.drawlist); " вместе с первым findViewById кнопки, надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...