Как я могу добавить кнопки в диалоге xml? - PullRequest
0 голосов
/ 09 марта 2020

Я пытался создать диалог, используя xml, но я пробовал это много раз, и он вызовет sh. Я не знаю, где проблема. Я уверен, что startConnect() и sendBtn() могут быть использованы. Как я могу создать один диалог xml? Потому что я окончательно разберусь с интерфейсом.

Это код ошибки

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.smart.v9, PID: 11678
    java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
        at com.smart.v9.TcpClientActivity.tv(TcpClientActivity.java:423)
        at com.smart.v9.TcpClientActivity.onClick(TcpClientActivity.java:267)
        at android.view.View.performClick(View.java:7125)
        at android.view.View.performClickInternal(View.java:7102)
        at android.view.View.access$3500(View.java:801)
        at android.view.View$PerformClick.run(View.java:27336)
        at android.os.Handler.handleCallback(Handler.java:883)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7356)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)

TcpClientActivity. java tv ():

private void tv(){
        final AlertDialog.Builder tvalert = new AlertDialog.Builder(this);
        LayoutInflater inflater = getLayoutInflater();
        final View tvview = inflater.inflate(R.layout.dialog_tv, null);


        mBtn15.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                //startConnect();
                //sendBtn(15);
            }
        });

        mBtn16.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                startConnect();
                sendBtn(16);
            }
        });

        mBtn17.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                startConnect();
                sendBtn(17);
            }
        });

        mBtn18.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                startConnect();
                sendBtn(18);
            }
        });

        mBtn19.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                startConnect();
                sendBtn(19);
            }
        });

        mBtn20.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                startConnect();
                sendBtn(20);
            }
        });

        mBtn21.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                startConnect();
                sendBtn(21);
            }
        });

        mBtn22.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                startConnect();
                sendBtn(22);
            }
        });

        mBtn23.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                startConnect();
                sendBtn(23);
            }
        });

        mBtn24.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                startConnect();
                sendBtn(24);
            }
        });

        mBtn25.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                startConnect();
                sendBtn(25);
            }
        });

        mBtn26.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                startConnect();
                sendBtn(26);
            }
        });

        mBtn27.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                startConnect();
                sendBtn(27);
            }
        });

        mBtn28.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                startConnect();
                sendBtn(28);
            }
        });

        mBtn29.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                startConnect();
                sendBtn(29);
            }
        });

        mBtn30.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                startConnect();
                sendBtn(30);
            }
        });

        mBtn31.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                startConnect();
                sendBtn(31);
            }
        });

        mBtn32.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                startConnect();
                sendBtn(32);
            }
        });

        mBtn33.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                startConnect();
                sendBtn(33);
            }
        });

        mBtn34.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                startConnect();
                sendBtn(34);
            }
        });
        tvalert.setNegativeButton("退出", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {

            }
        });

        tvalert.setView(tvview);
        tvalert.show();
    }

dialog_tv. xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:id="@+id/tv_lin"
        android:layout_alignParentTop="true"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

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

            <Button
                android:id="@+id/button15"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="on/off" />

            <Button
                android:id="@+id/button16"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="靜音" />
        </LinearLayout>

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

            <Button
                android:id="@+id/button17"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="退出" />

            <Button
                android:id="@+id/button18"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="+" />
        </LinearLayout>

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

            <Button
                android:id="@+id/button19"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="-" />

            <Button
                android:id="@+id/button20"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="快進" />
        </LinearLayout>

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

            <Button
                android:id="@+id/button21"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="後退" />

            <Button
                android:id="@+id/button22"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="↑" />
        </LinearLayout>

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

            <Button
                android:id="@+id/button23"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="←" />

            <Button
                android:id="@+id/button24"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="↓" />
        </LinearLayout>

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

            <Button
                android:id="@+id/button25"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="→" />

            <Button
                android:id="@+id/button26"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="enter" />
        </LinearLayout>

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

            <Button
                android:id="@+id/button27"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="setting" />

            <Button
                android:id="@+id/button28"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="暫停" />
        </LinearLayout>

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

            <Button
                android:id="@+id/button29"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="下一項" />

            <Button
                android:id="@+id/button30"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="上一項" />
        </LinearLayout>

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

            <Button
                android:id="@+id/button31"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="電視" />

            <Button
                android:id="@+id/button32"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="花園" />
        </LinearLayout>

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

            <Button
                android:id="@+id/button33"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="大門" />

            <Button
                android:id="@+id/button34"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="室內" />
        </LinearLayout>



    </LinearLayout>

</RelativeLayout>

1 Ответ

0 голосов
/ 09 марта 2020

Добавьте поиск для View Id

например:

mBtn15 = tvview.findViewById(R.id.button15);

etc..

надеюсь, что это может помочь вам

...