คำถามติดแท็ก android-dialog

คลาสพื้นฐานสำหรับ Dialogs กล่องโต้ตอบใน Android เป็นหน้าต่างเล็ก ๆ ที่แจ้งให้ผู้ใช้ตัดสินใจหรือป้อนข้อมูลเพิ่มเติม กล่องโต้ตอบไม่เต็มหน้าจอและโดยปกติจะใช้สำหรับเหตุการณ์โมดอลที่ต้องการให้ผู้ใช้ดำเนินการก่อนจึงจะดำเนินการต่อได้

30
ฉันจะแสดงข้อความแจ้งเตือนบน Android ได้อย่างไร
ฉันต้องการแสดงหน้าต่างข้อความโต้ตอบ / ป๊อปอัปพร้อมข้อความถึงผู้ใช้ที่แสดง "คุณแน่ใจหรือว่าต้องการลบรายการนี้?" ด้วยปุ่มเดียวที่ระบุว่า 'ลบ' เมื่อDeleteมีการสัมผัสก็ควรลบรายการนั้นมิฉะนั้นไม่มีอะไร ฉันได้เขียน listener การคลิกสำหรับปุ่มเหล่านั้นแล้ว แต่ฉันจะเรียกใช้ไดอะล็อกหรือป๊อปอัพและฟังก์ชันการทำงานได้อย่างไร

17
วิธีป้องกันการปิดกล่องโต้ตอบเมื่อคลิกปุ่ม
ฉันมีกล่องโต้ตอบEditTextสำหรับการป้อนข้อมูล เมื่อฉันคลิกปุ่ม "ใช่" บนกล่องโต้ตอบมันจะตรวจสอบอินพุตและปิดกล่องโต้ตอบ อย่างไรก็ตามหากอินพุตผิดฉันต้องการคงอยู่ในกล่องโต้ตอบเดียวกัน ทุกครั้งไม่ว่าอินพุตจะเป็นอย่างไรกล่องโต้ตอบควรปิดโดยอัตโนมัติเมื่อฉันคลิกที่ปุ่ม "ไม่" ฉันจะปิดการใช้งานนี้ได้อย่างไร โดยวิธีการที่ฉันได้ใช้ PositiveButton และ NegativeButton สำหรับปุ่มในการโต้ตอบ

28
จะจัดการกับการเปลี่ยนแปลงการวางแนวหน้าจอเมื่อไดอะล็อกความคืบหน้าและเธรดพื้นหลังทำงานอย่างไร
โปรแกรมของฉันทำกิจกรรมเครือข่ายบางอย่างในเธรดพื้นหลัง ก่อนที่จะเริ่มต้นจะปรากฏขึ้นในกล่องโต้ตอบความคืบหน้า ไดอะล็อกถูกยกเลิกบนตัวจัดการ ทั้งหมดนี้ทำงานได้ดียกเว้นเมื่อการวางแนวหน้าจอเปลี่ยนไปในขณะที่กล่องโต้ตอบทำงาน (และเธรดพื้นหลังจะทำงาน) ณ จุดนี้แอพขัดข้องหรือ deadlocks หรือเข้าสู่ขั้นตอนแปลก ๆ ที่แอพไม่ทำงานเลยจนกว่าเธรดทั้งหมดจะถูกฆ่า ฉันจะจัดการกับการเปลี่ยนแปลงการวางแนวหน้าจอได้อย่างสง่างามได้อย่างไร? โค้ดตัวอย่างด้านล่างตรงกับที่โปรแกรมจริงของฉันทำ: public class MyAct extends Activity implements Runnable { public ProgressDialog mProgress; // UI has a button that when pressed calls send public void send() { mProgress = ProgressDialog.show(this, "Please wait", "Please wait", true, true); Thread thread = …

21
จะสร้างกล่องโต้ตอบแบบกำหนดเองใน Android ได้อย่างไร?
ฉันต้องการสร้างกล่องโต้ตอบแบบกำหนดเองตามด้านล่าง ฉันได้ลองสิ่งต่อไปนี้แล้ว ฉันสร้างคลาสย่อยของAlertDialog.Builderและใช้หัวเรื่องที่กำหนดเองและมุมมองเนื้อหาที่กำหนดเองและใช้สิ่งนั้น แต่ผลลัพธ์ไม่เป็นไปตามที่คาดไว้ ความพยายามอีกประการหนึ่งคือ subclass DialogFragmentและกำหนดไดอะล็อกภายใน onCreateDialog แต่ผลลัพธ์ไม่เป็นไปตามที่คาดไว้ จากนั้นฉันลองใช้คลาสไดอะล็อกธรรมดา ผลลัพธ์ไม่เป็นไปตามที่คาดไว้ ในทั้งสามกรณีปัญหาคือเมื่อฉันมองข้ามมุมมองหัวเรื่องขนาดของกล่องโต้ตอบไม่เป็นไปตามที่คาดไว้และเมื่อฉันใช้มุมมองชื่อผลลัพธ์จะมีเส้นขอบหนารอบมุมมองเนื้อหา (ซึ่งดูไม่ดี) ตอนนี้ฉันมีสองคำถามในใจของฉัน ... ฉันจะบรรลุสิ่งนั้นได้อย่างไร เมื่อฉันลองหลายสิ่งไปแล้วคำตอบโดยตรงจะได้รับการชื่นชมมากขึ้น วิธีที่ดีที่สุดในการแสดงข้อผิดพลาดหรือข้อความแจ้งเตือนในแอพ android คืออะไร? EDIT Android Developer Documentationแนะนำว่าเราควรใช้ DialogFragments หรือ Dialogs เพื่อแสดงข้อความ Error / Alert ให้กับผู้ใช้ อย่างไรก็ตามมีอยู่ช่วงหนึ่งที่พวกเขาพูด ... เคล็ดลับ: ถ้าคุณต้องการไดอะล็อกที่กำหนดเองคุณสามารถแสดงกิจกรรมเป็นไดอะล็อกแทนการใช้ไดอะล็อก API เพียงสร้างกิจกรรมและกำหนดธีมเป็น Theme.Holo.Dialog ในองค์ประกอบรายการ ความหมายของสิ่งนั้นคืออะไร? การใช้กิจกรรมเพียงเพื่อแสดงข้อความแสดงข้อผิดพลาดมันมากเกินไปหรือไม่?

16
Android 1.6:“ android.view.WindowManager $ BadTokenException: ไม่สามารถเพิ่มหน้าต่าง - โทเค็น null ไม่ได้สำหรับแอปพลิเคชัน”
ฉันพยายามเปิดหน้าต่างข้อความ แต่ทุกครั้งที่ฉันพยายามเปิดมันจะมีข้อผิดพลาดนี้เกิดขึ้น: Uncaught handler: thread main exiting due to uncaught exception android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application at android.view.ViewRoot.setView(ViewRoot.java:460) at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177) at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91) at android.app.Dialog.show(Dialog.java:238) at android.app.Activity.showDialog(Activity.java:2413) ฉันกำลังสร้างมันด้วยการโทรshowDialogด้วยรหัสของจอแสดงผล onCreateDialogจัดการล็อกที่ดีและผมสามารถก้าวผ่านมันโดยไม่มีปัญหา แต่ผมได้แนบมันตั้งแต่มันดูเหมือนว่าฉันหายไปบางสิ่งบางอย่าง @Override public Dialog onCreateDialog(int id) { Dialog dialog; Context appContext = this.getApplicationContext(); switch(id) …

11
จะแสดงกล่องโต้ตอบเพื่อยืนยันว่าผู้ใช้ต้องการออกจากกิจกรรม Android ได้อย่างไร
ฉันพยายามแสดงข้อความ "คุณต้องการออกหรือไม่" ชนิดของกล่องโต้ตอบเมื่อผู้ใช้พยายามออกจากกิจกรรม อย่างไรก็ตามฉันไม่พบ API hooks ที่เหมาะสม Activity.onUserLeaveHint()เริ่มแรกดูมีแนวโน้ม แต่ฉันไม่สามารถหาวิธีหยุดกิจกรรมจากการทำกิจกรรมให้เสร็จ

10
กิจกรรม Android เป็นกล่องโต้ตอบ
ฉันมีกิจกรรมชื่อwhereActityซึ่งมีข้อความโต้ตอบของเด็กด้วย ตอนนี้ฉันต้องการแสดงกิจกรรมนี้เป็นกล่องโต้ตอบสำหรับกิจกรรมอื่น ฉันจะทำสิ่งนั้นได้อย่างไร

20
กล่องโต้ตอบที่มีพื้นหลังโปร่งใสใน Android
ฉันจะลบพื้นหลังสีดำออกจากกล่องโต้ตอบใน Android ได้อย่างไร รูปแสดงให้เห็นถึงปัญหา final Dialog dialog = new Dialog(Screen1.this); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setContentView(R.layout.themechanger);

7
Android DialogFragment เทียบกับ Dialog
Google ขอแนะนำให้เราใช้DialogFragmentแทนการที่เรียบง่ายDialogโดยใช้Fragments APIแต่มันเป็นเรื่องเหลวไหลที่จะใช้แยกDialogFragmentหาง่ายใช่ไม่มีกล่องข้อความยืนยัน แนวปฏิบัติที่ดีที่สุดในกรณีนี้คืออะไร?

26
วิธีการตั้งค่าความกว้างและความสูงของ DialogFragment
ฉันระบุรูปแบบของ DialogFragment ของฉันในไฟล์รูปแบบ XML (ขอเรียกว่าlayout_mydialogfragment.xml) และlayout_widthและlayout_heightคุณลักษณะเฉพาะอย่างยิ่ง (จะ100dpแต่ละสมมติ) ฉันขยายรูปแบบนี้ในonCreateView(...)วิธีการDialogFragment ของฉันดังนี้ View view = inflater.inflate(R.layout.layout_mydialogfragment, container, false); น่าเสียดายที่ฉันพบว่าเมื่อไดอะล็อกของฉัน (DialogFragment) ปรากฏขึ้นจะไม่เคารพlayout_widthและlayout_heightระบุในไฟล์เลย์เอาต์ xml (และไดอะล็อกของฉันจะย่อเล็กลงหรือขยายได้ขึ้นอยู่กับเนื้อหา) ใครรู้หรือไม่ว่าฉันจะได้รับกล่องโต้ตอบของฉันที่จะเคารพlayout_widthและlayout_heightระบุไว้ในไฟล์รูปแบบของ XML? ในขณะนี้ฉันต้องระบุความกว้างและความสูงของกล่องโต้ตอบอีกครั้งในonResume()วิธีการDialogFragment ของฉันดังนี้ ... getDialog().getWindow().setLayout(width, height); ... และด้วยเหตุนี้เราจึงจำไม่ได้ว่าต้องเปลี่ยนแปลงความกว้างและความสูงของกล่องโต้ตอบในอนาคตทั้งสองแห่ง

13
จะยกเลิกกล่องโต้ตอบโดยคลิกที่ด้านนอกของกล่องโต้ตอบได้อย่างไร
ฉันใช้กล่องโต้ตอบที่กำหนดเองสำหรับแอปพลิเคชันของฉัน ฉันต้องการนำไปใช้เมื่อผู้ใช้คลิกที่นอกกล่องโต้ตอบการสนทนาจะถูกยกเลิก ฉันต้องทำอะไรเพื่อสิ่งนี้

11
Android 'ไม่สามารถเพิ่มหน้าต่าง - โทเค็น null ไม่ได้เป็นข้อยกเว้นสำหรับแอปพลิเคชัน'
ฉันได้รับข้อยกเว้นของ Android ดังต่อไปนี้เมื่อฉันพยายามเปิดกล่องโต้ตอบ ใครช่วยช่วยฉันเข้าใจว่าเกิดอะไรขึ้นและฉันจะแก้ไขปัญหานี้ได้อย่างไร android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application at android.view.ViewRoot.setView(ViewRoot.java:509) at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177) at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91) at android.app.Dialog.show(Dialog.java:241)

15
วิธีสร้างกล่องโต้ตอบที่กำหนดเองด้วยมุมโค้งมนใน Android
สิ่งที่ฉันพยายามทำ:ฉันกำลังพยายามสร้างกล่องโต้ตอบที่กำหนดเองใน Android ด้วยมุมโค้งมน เกิดอะไรขึ้น:ฉันสามารถสร้างไดอะล็อกแบบกำหนดเองได้ แต่ไม่มีมุมโค้งมน ฉันพยายามเพิ่มตัวเลือก แต่ก็ยังไม่สามารถทำมุมโค้งมนได้ ด้านล่างนี้เป็นรหัสของฉันเหมือนกัน: รหัส Java: private void launchDismissDlg() { dialog = new Dialog(getActivity(), android.R.style.Theme_Dialog); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setContentView(R.layout.dlg_dismiss); dialog.setCanceledOnTouchOutside(true); Button btnReopenId = (Button) dialog.findViewById(R.id.btnReopenId); Button btnCancelId = (Button) dialog.findViewById(R.id.btnCancelId); btnReopenId.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { } }); btnCancelId.setOnClickListener(new OnClickListener() { @Override public void onClick(View …

7
แสดงกล่องโต้ตอบจากส่วนย่อยหรือไม่
ฉันมีชิ้นส่วนบางอย่างที่ต้องแสดงกล่องโต้ตอบปกติ ในกล่องโต้ตอบเหล่านี้ผู้ใช้สามารถเลือกคำตอบใช่ / ไม่ใช่จากนั้นส่วนควรทำงานตามนั้น ตอนนี้Fragmentชั้นไม่ได้มีวิธีการที่จะแทนที่ดังนั้นผมคิดว่าผมต้องใช้ไดอะล็อกนอกในที่มีonCreateDialog() Activityไม่เป็นไร แต่Activityจำเป็นต้องรายงานกลับคำตอบที่เลือกไปยังส่วนย่อย แน่นอนว่าฉันสามารถใช้รูปแบบการโทรกลับได้ที่นี่ดังนั้นแฟรกเมนต์จึงลงทะเบียนตัวเองที่Activityคลาสของผู้ฟังและกิจกรรมจะรายงานคำตอบกลับผ่านสิ่งนั้นหรืออะไรทำนองนั้น แต่ดูเหมือนว่าจะค่อนข้างยุ่งยากสำหรับงานง่ายๆเนื่องจากการแสดงกล่องโต้ตอบใช่ไม่ใช่ "แบบธรรมดา" ในส่วนย่อย ด้วยวิธีนี้ฉันFragmentจะมีความเป็นตัวเองน้อยลง มีวิธีที่สะอาดกว่านี้ไหม แก้ไข: คำตอบสำหรับคำถามนี้ไม่ได้อธิบายรายละเอียดว่าควรใช้ DialogFragments เพื่อแสดงกล่องโต้ตอบจาก Fragments อย่างไร AFAIK วิธีที่จะไปคือ: แสดงส่วนย่อย เมื่อจำเป็นให้สร้าง DialogFragment ตั้งค่า Fragment ดั้งเดิมเป็นเป้าหมายของ DialogFragment นี้ด้วย .setTargetFragment() . แสดง DialogFragment ด้วย. show () จาก Fragment ดั้งเดิม เมื่อผู้ใช้เลือกตัวเลือกบางอย่างใน DialogFragment นี้ให้แจ้ง Fragment ดั้งเดิมเกี่ยวกับการเลือกนี้ (เช่นผู้ใช้คลิก 'ใช่') คุณจะได้รับการอ้างอิงของ Fragment ดั้งเดิมด้วย .getTarget …

4
ฉันจะเพิ่มปุ่มที่สามในกล่องโต้ตอบการแจ้งเตือนของ Android ได้อย่างไร
API ระบุว่ากล่องโต้ตอบการแจ้งเตือนสามารถมีปุ่มหนึ่งสองหรือสามปุ่ม แต่ SDK อนุญาตให้ใช้ปุ่มบวกและลบเท่านั้น ฉันจะเพิ่มปุ่มที่สามได้อย่างไร?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.