簡體   English   中英

如何在Android的自定義對話框中打開自定義對話框

[英]how to open custom dialog box in a custom dialog box in android

我的應用程序在單擊按鈕時包含一個自定義對話框,在該對話框中,我在選中此復選框中的一個時有一些復選框,它向我顯示帶有3個復選框的另一個對話框,請幫助我這是打開第一個對話框的代碼

ImageView img1 = (ImageView)findViewById(R.id.image_menu);
        img1.setOnClickListener(new OnClickListener() {

              @Override
              public void onClick(View arg0) {

                // custom dialog
                final Dialog dialog = new Dialog(MainActivity.this);
                dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
                dialog.setContentView(R.layout.menu);

                Button dialogButton = (Button) dialog.findViewById(R.id.btncross);
                // if button is clicked, close the custom dialog
                dialogButton.setOnClickListener(new OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        dialog.dismiss();
                    }
                });

                 dialog.show();
                 Spinner spin = (Spinner)dialog.findViewById(R.id.spinState);
                 ArrayAdapter<String> adapter_state = new ArrayAdapter<String>(MainActivity.this,  android.R.layout.simple_spinner_item, states);
                 adapter_state.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                 spin.setAdapter(adapter_state);
                 spin.setSelection(pos);
                 spin.setOnItemSelectedListener(MainActivity.this);



                 Button btnShare = (Button)dialog.findViewById(R.id.btnShare);
                 btnShare.setOnClickListener(new OnClickListener() {

                    @Override
                    public void onClick(View arg0) {
                        // TODO Auto-generated method stub
                        Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND); 
                        sharingIntent.setType("text/plain");
                        String shareBody = "Dry Day App ";
                        sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "DryDayApp");
                        sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareBody);
                        dialog.getContext().startActivity(Intent.createChooser(sharingIntent, "Share via"));

                    }

                 });


                 cb1 = (CheckBox)dialog.findViewById(R.id.checkBoxHR);
                 cb1.setOnCheckedChangeListener(listener1);

                 cb2 = (CheckBox)dialog.findViewById(R.id.checkBoxDay);
                 cb2.setOnCheckedChangeListener(listener2);

                 cb3 = (CheckBox)dialog.findViewById(R.id.checkBox1);
                 cb3.setOnCheckedChangeListener(listener3);

                 preferences = getSharedPreferences("syllabus", 0);
                 cb1.setChecked(preferences.getBoolean("c1" ,false));
                 cb2.setChecked(preferences.getBoolean("c2" ,false));
                 cb3.setChecked(preferences.getBoolean("c3" ,false));


              }
            });

根據Android嵌套的AlertDialog-這可能嗎?

只需設計一個新的xml布局作為對話框並創建一個新的活動, @android:style/Theme.Dialog在清單文件中的活動標簽ex下將其主題設置為@android:style/Theme.Dialog

<activity android:theme="@android:style/Theme.Dialog" android:name="LocationDialog"> </activity>

在對話框中單擊偵聽器代碼,以如下方式啟動活動

new AlertDialog.Builder(ActivityMain.this).setMessage(
  "Are you sure?").setPositiveButton("Yes",
    new DialogInterface.OnClickListener() {
      public void onClick(DialogInterface arg0, int arg1) {
             Intent i = new Intent(YourActivity.this, NewActivity.class);
             startActivity(i);
      }

這將以對話框形式啟動您的新活動 ,您可以在其中輕松應用操作。

// EDIT您應該閱讀Android 在alertdialog android中 從對話框AlertDialog中 顯示另一個對話框

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM