第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

將信息從警報(bào)對(duì)話框傳遞到父片段

將信息從警報(bào)對(duì)話框傳遞到父片段

紫衣仙女 2022-09-07 16:14:32
我正在嘗試將信息從我的警報(bào)對(duì)話框傳遞到它所在的父片段。但是,一旦您按下正向按鈕,該應(yīng)用程序就會(huì)崩潰。我真的不知道該怎么辦已經(jīng)閱讀了許多帖子和文章,但找不到問(wèn)題。如果你能幫助我,那就太好了。(我是初學(xué)者)這是我在代碼中的第一個(gè)問(wèn)題和第二個(gè)注釋中得到的錯(cuò)誤。E/AndroidRuntime: FATAL EXCEPTION: main    Process: com.example.test, PID: 20682    java.lang.NullPointerException: Attempt to invoke interface method 'void com.example.test.SchulfachDialog$SchulfachDialogListener.applyTexts(java.lang.String)' on a null object reference        at com.example.test.SchulfachDialog$1.onClick(SchulfachDialog.java:39)        at android.support.v7.app.AlertController$ButtonHandler.handleMessage(AlertController.java:167)        at android.os.Handler.dispatchMessage(Handler.java:102)        at android.os.Looper.loop(Looper.java:148)        at android.app.ActivityThread.main(ActivityThread.java:5525)        at java.lang.reflect.Method.invoke(Native Method)        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730)        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)這是我的警報(bào)對(duì)話框代碼:builder.setView(view)            .setTitle("Add new subject")            .setMessage("Message")            .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {                @Override                public void onClick(DialogInterface dialog, int which) {                }            })            .setPositiveButton("ok", new DialogInterface.OnClickListener() {                @Override                public void onClick(DialogInterface dialog, int which) {                    String name = editTextName.getText().toString();                    listener.applyTexts(name); // Problem 1: when positiv Button is pushed this line causes a crash                }            });    editTextName = view.findViewById(R.id.edit_name);    return builder.create();}這是我在片段代碼中覆蓋的應(yīng)用文本:public interface SchulfachDialogListener{        void applyTexts(String name);    }}@Override public void applyTexts(String name) {            test = name;    }}
查看完整描述

1 回答

?
烙印99

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超13個(gè)贊

溶液:要將數(shù)據(jù)從警報(bào)對(duì)話框傳遞到父片段,更簡(jiǎn)單的方法是讓對(duì)話框擴(kuò)展 DialogFragment。然后使用它們和在它們之間發(fā)送數(shù)據(jù)。setTargetFragmentsetTargetFragment


因?yàn)槟銢](méi)有發(fā)布父片段代碼,所以我假設(shè)這里是你的父片段的xml和java代碼。


主碎屑.java


public class MainFragment extends Fragment implements SchulfachDialogListener{


    @Nullable

    @Override

    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

        View view = inflater.inflate(R.layout.fragment_main, container, false);


        Button btnShowAlertDialog = view.findViewById(R.id.button_show_alert_dialog);

        btnShowAlertDialog.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View v) {

                SchulfachDialog dialog = new SchulfachDialog();

                dialog.setTargetFragment(MainFragment.this, 0);

                dialog.show(requireActivity().getSupportFragmentManager(), null);

            }

        });


        return view;

    }


    @Override

    public void applyTexts(String text) {

        Toast.makeText(requireActivity(), text, Toast.LENGTH_SHORT).show();

    }

}

fragment_main.xml


<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

          android:layout_width="match_parent"

          android:layout_height="match_parent"

          android:orientation="vertical">


    <Button android:layout_width="match_parent" 

        android:layout_height="wrap_content"

        android:text="Show Alert Dialog"

        android:id="@+id/button_show_alert_dialog"/>


</LinearLayout>

讓警報(bào)對(duì)話框擴(kuò)展 DialogFragment。


public class SchulfachDialog extends DialogFragment {


    private EditText editTextName;


    @NonNull

    @Override

    public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {

        AlertDialog.Builder builder = new AlertDialog.Builder(requireActivity());

        View view = LayoutInflater.from(requireActivity()).inflate(R.layout.dialog_schulfach, null);


        builder.setView(view)

                .setTitle("Add new subject")

                .setMessage("Message")

                .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {

                    @Override

                    public void onClick(DialogInterface dialog, int which) {


                    }

                })

                .setPositiveButton("ok", new DialogInterface.OnClickListener() {

                    @Override

                    public void onClick(DialogInterface dialog, int which) {

                        String name = editTextName.getText().toString();

                        SchulfachDialogListener listener = (SchulfachDialogListener) getTargetFragment();

                        listener.applyTexts(name);

                    }

                });

        editTextName = view.findViewById(R.id.edit_name);


        return builder.create();

    }

}


查看完整回答
反對(duì) 回復(fù) 2022-09-07
  • 1 回答
  • 0 關(guān)注
  • 88 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)