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

Android เป็นระบบปฏิบัติการมือถือของ Google ใช้สำหรับการเขียนโปรแกรมหรือพัฒนาอุปกรณ์ดิจิตอล (สมาร์ทโฟน, แท็บเล็ต, รถยนต์, ทีวี, เครื่องแต่งกาย, แก้ว, IoT) สำหรับหัวข้อที่เกี่ยวข้องกับ Android ให้ใช้แท็กเฉพาะสำหรับ Android เช่น android-intent, android-activity, android-adapter, ฯลฯ สำหรับคำถามนอกเหนือจากการพัฒนาหรือการเขียนโปรแกรม แต่เกี่ยวข้องกับกรอบของ Android ให้ใช้ลิงค์นี้: https: // android.stackexchange.com

5
วิธี SQLiteDatabase.query
ฉันใช้วิธีการสืบค้นของ SQLiteDatabase ฉันจะใช้วิธีการสอบถามได้อย่างไร? ฉันลองสิ่งนี้: Cursor cursor = sqLiteDatabase.query( tableName, tableColumns, whereClause, whereArgs, groupBy, having, orderBy); tableColumns - สร้างพารามิเตอร์ของคอลัมน์ดังนี้ String[] columns = new String[]{KEY_ID, KEY_CONTENT}; หากเราต้องการรับฟิลด์ทั้งหมดควรสร้างพารามิเตอร์คอลัมน์อย่างไร เราจำเป็นต้องรวม Field Names ทั้งหมดใน String array หรือไม่? ฉันจะใช้วิธีการสืบค้นได้อย่างไร?
121 android  sqlite 

9
ปัญหากับ Android Fragment back stack
ฉันมีปัญหาใหญ่เกี่ยวกับวิธีที่ส่วนแบ็คสแต็กของ Android ใช้งานได้และจะขอบคุณมากที่สุดสำหรับความช่วยเหลือใด ๆ ที่มีให้ ลองนึกภาพคุณมี 3 Fragments [1] [2] [3] ฉันต้องการให้ผู้ใช้จะสามารถนำทาง[1] > [2] > [3]แต่ในทางกลับ [3] > [1](กดปุ่มด้านหลัง) อย่างที่ฉันคิดไว้ว่าสิ่งนี้จะทำได้โดยการไม่โทรaddToBackStack(..)เมื่อสร้างธุรกรรมที่นำส่วน[2]เข้าสู่ตัวยึดส่วนที่กำหนดไว้ใน XML ความจริงของเรื่องนี้ดูเหมือนกับว่าว่าถ้าผมไม่ต้องการ[2]ที่จะปรากฏขึ้นอีกครั้งเมื่อผู้ใช้กดปุ่มย้อนกลับบน[3]ผมต้องไม่เรียกในการทำธุรกรรมที่ส่วนแสดงให้เห็นว่าaddToBackStack [3]สิ่งนี้ดูเหมือนจะสวนทางกันโดยสิ้นเชิง (อาจมาจากโลก iOS) อย่างไรก็ตามถ้าฉันทำแบบนี้เมื่อฉันไป[1] > [2]และกดกลับฉันก็กลับมา[1]ตามที่คาดไว้ ถ้าฉันไป[1] > [2] > [3]แล้วกดกลับฉันจะข้ามกลับไปที่[1](ตามที่คาดไว้) ตอนนี้พฤติกรรมแปลกที่เกิดขึ้นเมื่อฉันพยายามและข้ามไปอีกครั้งจาก[2] [1]ก่อนอื่น[3]จะแสดงสั้น ๆ ก่อนที่จะ[2]เข้าสู่มุมมอง หากฉันกดย้อนกลับที่จุดนี้[3]จะปรากฏขึ้นและหากฉันกดย้อนกลับอีกครั้งแอปจะออก ใครช่วยให้ฉันเข้าใจว่าเกิดอะไรขึ้นที่นี่? และนี่คือไฟล์ xml เลย์เอาต์สำหรับกิจกรรมหลักของฉัน: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" …

6
คุณสมบัติที่ซ่อนอยู่ของการพัฒนา Android?
ล็อค คำถามนี้และคำตอบถูกล็อกเนื่องจากคำถามไม่ตรงประเด็น แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ยังไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันแปลกใจที่ยังไม่มีโพสต์ฟีเจอร์ที่ซ่อนอยู่ของ Android ในซีรีส์ฟีเจอร์ที่ซ่อนอยู่ซึ่งฉันติดตามมาระยะหนึ่งแล้ว ชุดคุณลักษณะที่ซ่อนอยู่เหมาะสำหรับผู้ที่ยังไม่คุ้นเคยกับภาษาใดภาษาหนึ่ง มันแสดงให้เห็นเชือกและเทคนิคที่มีค่าบางอย่างในที่เดียว ฉันคิดว่ามันเป็นความคิดที่ยอดเยี่ยม แม้แต่ผู้เชี่ยวชาญบางครั้งก็ยังพบกลเม็ดที่พวกเขาไม่เคยได้ยินมาก่อน ฉันกำลังเริ่มการพัฒนา Android และฉันชอบที่จะได้ยินเกี่ยวกับคุณสมบัติที่ซ่อนอยู่เคล็ดลับเทคนิคและข้อผิดพลาด ต่อไปนี้: คุณลักษณะที่ซ่อนอยู่ของAndroidคืออะไร?

4
ฉันจะขอ http โดยใช้คุกกี้บน Android ได้อย่างไร?
ฉันต้องการส่งคำขอ http ไปยังเซิร์ฟเวอร์ระยะไกลในขณะที่จัดการคุกกี้อย่างถูกต้อง (เช่นจัดเก็บคุกกี้ที่เซิร์ฟเวอร์ส่งมาและส่งคุกกี้เหล่านั้นเมื่อฉันทำการร้องขอในภายหลัง) เป็นการดีที่จะเก็บคุกกี้ใด ๆ และทั้งหมดไว้ แต่สิ่งเดียวที่ฉันสนใจคือคุกกี้เซสชัน ด้วย java.net ดูเหมือนว่าวิธีที่ต้องการคือใช้ java.net.CookieHandler (คลาสฐานนามธรรม) และ java.net.CookieManager (การนำไปใช้อย่างเป็นรูปธรรม) Android มี java.net.CookieHandler แต่ดูเหมือนว่าจะไม่มี java.net.CookieManager ฉันสามารถเขียนโค้ดทั้งหมดด้วยมือโดยตรวจสอบส่วนหัว http แต่ดูเหมือนว่าจะต้องมีวิธีที่ง่ายกว่านี้ อะไรคือวิธีที่เหมาะสมในการส่งคำขอ http บน Android ในขณะที่เก็บคุกกี้ไว้
121 java  android  http  url  cookies 

15
ไม่สามารถใช้ 'dependencies' กับ '(groovy.lang.Closure)'
ฉันไม่สามารถแก้ไขข้อผิดพลาดนี้: dependencies cannot be applied to '(groovy.lang.Closure) นี่คือไฟล์ gradle ของฉัน: buildscript { repositories { maven { url 'http://download.crashlytics.com/maven' } } dependencies { classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.+' } } apply plugin: 'android' apply plugin: 'crashlytics' repositories { maven { url 'http://download.crashlytics.com/maven' } } dependencies { compile fileTree(dir: "$buildDir/native-libs", include: 'native-libs.jar') compile fileTree(dir: 'libs', …
121 android  groovy  gradle 

9
มีวิธีใดบ้างที่จะละเว้น INSTALL_FAILED_VERSION_DOWNGRADE ในการติดตั้งแอปพลิเคชันด้วย Android Debug Bridge
ดูเหมือนว่า Android 4.2 ล่าสุดได้นำเสนอเงื่อนไขข้อผิดพลาดนี้ในการติดตั้งเมื่อมีคนพยายามติดตั้ง APK ด้วยเวอร์ชันที่ต่ำกว่า ในรุ่นก่อนหน้าของ Android adb install -r <link to APK>หนึ่งจะสามารถติดตั้งเก่าเอพีเคก็ผ่าน เพื่อวัตถุประสงค์ในการดีบักฉันมักจะต้องทดสอบ APK รุ่นเก่าอีกครั้ง และ-rแฟล็กจะแทนที่บิวด์เก่าใน Android เวอร์ชันเก่า มีวิธีแก้ไขที่จะเพิกเฉย[INSTALL_FAILED_VERSION_DOWNGRADE]หรือไม่?
121 android  install  adb 

12
แก้ไขข้อความที่โฟกัสได้ภายใน ListView
จนถึงตอนนี้ฉันใช้เวลาประมาณ 6 ชั่วโมงและไม่มีอะไรเหลือเลยนอกจากสิ่งกีดขวางบนถนน หลักฐานทั่วไปคือมีบางแถวในListView(ไม่ว่าจะสร้างโดยอะแด็ปเตอร์หรือเพิ่มเป็นมุมมองส่วนหัว) ที่มีEditTextวิดเจ็ตและไฟล์Button. สิ่งที่ฉันต้องการทำก็คือสามารถใช้ jogball / ลูกศรเพื่อนำทางตัวเลือกไปยังแต่ละรายการเหมือนปกติ แต่เมื่อฉันไปที่แถวใดแถวหนึ่ง - แม้ว่าฉันจะต้องระบุแถวอย่างชัดเจน - ที่มีโฟกัสได้ เด็กฉันต้องการให้เด็กคนนั้นโฟกัสแทนที่จะระบุตำแหน่งด้วยตัวเลือก ฉันได้ลองใช้ความเป็นไปได้มากมายและจนถึงตอนนี้ก็ยังไม่มีโชค รูปแบบ: <ListView android:id="@android:id/list" android:layout_height="fill_parent" android:layout_width="fill_parent" /> มุมมองส่วนหัว: EditText view = new EditText(this); listView.addHeaderView(view, null, true); สมมติว่ามีรายการอื่นในอะแด็ปเตอร์การใช้ปุ่มลูกศรจะย้ายส่วนที่เลือกขึ้น / ลงในรายการตามที่คาดไว้ แต่เมื่อไปที่แถวส่วนหัวจะแสดงด้วยตัวเลือกและไม่มีวิธีใดที่จะมุ่งเน้นไปที่การEditTextใช้ jogball หมายเหตุ: การแตะที่EditText จะโฟกัสไปที่จุดนั้น แต่ต้องอาศัยหน้าจอสัมผัสซึ่งไม่ควรเป็นข้อกำหนด ListViewเห็นได้ชัดว่ามีสองโหมดในเรื่องนี้: 1. setItemsCanFocus(true)ตัวเลือกจะไม่ปรากฏขึ้น แต่EditTextสามารถรับโฟกัสได้เมื่อใช้ลูกศร อัลกอริธึมการค้นหาโฟกัสยากที่จะคาดเดาและไม่มีการตอบกลับด้วยภาพ (ในแถวใด ๆ : มีลูกที่โฟกัสได้หรือไม่มี) รายการใดที่ถูกเลือกซึ่งทั้งสองอย่างนี้สามารถให้ประสบการณ์ที่ไม่คาดคิดแก่ผู้ใช้ได้ …

11
ขนาดตัวอักษรและขนาดหน้าจอ Android ที่แตกต่างกัน
ฉันรู้ว่ามีการพูดคุยกันแล้ว 1,000 ครั้ง แต่ฉันไม่สามารถปรับขนาดตัวอักษรสำหรับขนาดหน้าจอที่แตกต่างกันได้ ฉันพยายามใช้ 'sp' เป็นหน่วยขนาดในสไตล์ที่ฉันกำหนดเอง: <style name="CustumButtonStyle" parent="@android:style/Widget.Button"> ... <item name="android:textSize">30sp</item> ... </style> ใน 2.7 QVGA ดูเหมือนว่า OK: แต่ใน 7in WSVGA จะมีลักษณะดังนี้: ฉันได้ลองใช้ทั้ง 'sp' และ 'dp' ด้วยผลลัพธ์เดียวกัน คุณช่วยอธิบายวิธีทำให้ปุ่มเหล่านี้ดูเหมือนกันบนหน้าจอได้ไหม รูปแบบปุ่มแบบกำหนดเองแบบเต็ม <style name="CustumButtonStyle" parent="@android:style/Widget.Button"> <item name="android:background">@drawable/custom_button</item> <item name="android:layout_width">fill_parent</item> <item name="android:layout_height">wrap_content</item> <item name="android:layout_margin">3dp</item> <item name="android:textColor">#ffffff</item> <item name="android:gravity">center</item> <item name="android:textSize">30sp</item> <item name="android:textStyle">bold</item> …

3
เหตุใด ActionBarActivity จึงเลิกใช้งาน
ฉันติดตั้ง Android Studio ใหม่และเริ่มเขียนโค้ดกิจกรรมเพื่อขยายActionBarActivityและแสดงว่าเลิกใช้งานแล้ว ฉันจะตั้งค่าแถบการทำงานสำหรับกิจกรรมของฉันได้อย่างไร นอกจากนี้การฝึกอบรมการเริ่มต้นใช้งานยังใช้ActionBarActivityโดยไม่มีการอ้างอิงว่าได้เลิกใช้แล้ว

16
ในการแสดงกล่องโต้ตอบฉันได้รับ“ ไม่สามารถดำเนินการนี้ได้หลังจาก onSaveInstanceState”
ผู้ใช้บางรายกำลังรายงานหากใช้การดำเนินการด่วนในแถบการแจ้งเตือนพวกเขากำลังถูกบังคับให้ปิด ฉันแสดงการดำเนินการอย่างรวดเร็วในการแจ้งเตือนว่าใครเรียกคลาส"TestDialog" ในคลาส TestDialog หลังจากกดปุ่ม "snooze" ฉันจะแสดง SnoozeDialog private View.OnClickListener btnSnoozeOnClick() { return new View.OnClickListener() { public void onClick(View v) { showSnoozeDialog(); } }; } private void showSnoozeDialog() { FragmentManager fm = getSupportFragmentManager(); SnoozeDialog snoozeDialog = new SnoozeDialog(); snoozeDialog.show(fm, "snooze_dialog"); } ข้อผิดพลาดคือ *IllegalStateException: Can not perform this action after onSaveInstanceState*. …
121 android  dialog  fragment 

10
จะตรวจสอบได้อย่างไรว่ามีการลงนาม APK หรือ "debug build"
เท่าที่ฉันรู้ใน Android "release build" มีการลงนาม APK จะตรวจสอบจากโค้ดได้อย่างไรหรือ Eclipse มีความลับบางอย่างกำหนดไว้หรือไม่? ฉันต้องการสิ่งนี้เพื่อดีบักการเติมข้อมูลรายการ ListView จากข้อมูลบริการบนเว็บ (ไม่ใช่ logcat ไม่ใช่ตัวเลือก) ความคิดของฉัน: แอปพลิเคชันandroid:debuggableแต่ด้วยเหตุผลบางประการที่ดูไม่น่าเชื่อถือ รหัสอุปกรณ์ฮาร์ดโค้ดไม่ใช่ความคิดที่ดีเพราะฉันใช้อุปกรณ์เดียวกันในการทดสอบ APK ที่ลงชื่อ ใช้การตั้งค่าสถานะด้วยตนเองในรหัสหรือไม่? เป็นไปได้ แต่แน่นอนจะลืมที่จะเปลี่ยนแปลงในบางครั้งบวกกับโปรแกรมเมอร์ทุกคนขี้เกียจ

10
วิธีแสดงรายการไฟล์ในไดเรกทอรี Android
นี่คือรหัสของฉันจนถึงตอนนี้: String path = Environment.getExternalStorageDirectory().toString()+"/Pictures"; AssetManager mgr = getAssets(); try { String list[] = mgr.list(path); Log.e("FILES", String.valueOf(list.length)); if (list != null) for (int i=0; i<list.length; ++i) { Log.e("FILE:", path +"/"+ list[i]); } } catch (IOException e) { Log.v("List error:", "can't list" + path); } แต่ในขณะที่ฉันมีไฟล์อยู่ใน dir นั้นมันจะส่งกลับรายการความยาว = 0 ...
121 android 

11
วิธีป้องกันหลายอินสแตนซ์ของกิจกรรมเมื่อเปิดตัวด้วย Intent ที่แตกต่างกัน
ฉันพบข้อบกพร่องในแอปพลิเคชันของฉันเมื่อเปิดตัวโดยใช้ปุ่ม"เปิด"บนแอป Google Play Store (ก่อนหน้านี้เรียกว่า Android Market) ดูเหมือนว่าการเปิดตัวจาก Play Store จะใช้วิธีที่แตกต่างIntentจากการเปิดใช้งานจากเมนูไอคอนแอปพลิเคชันของโทรศัพท์ ซึ่งนำไปสู่การเปิดตัวกิจกรรมเดียวกันหลายชุดซึ่งขัดแย้งกัน ตัวอย่างเช่นหากแอปของฉันประกอบด้วยกิจกรรม ABC ปัญหานี้อาจนำไปสู่ ​​ABCA หลายชุด ฉันพยายามใช้android:launchMode="singleTask"กับกิจกรรมทั้งหมดเพื่อแก้ไขปัญหานี้ แต่มีผลข้างเคียงที่ไม่ต้องการจากการล้างสแต็กกิจกรรมไปยังรูทเมื่อใดก็ตามที่ฉันกดปุ่ม HOME พฤติกรรมที่คาดไว้คือ: ABC -> HOME -> และเมื่อแอปได้รับการกู้คืนฉันต้องการ: ABC -> HOME -> ABC มีวิธีที่ดีในการป้องกันการเรียกใช้กิจกรรมประเภทเดียวกันหลายรายการโดยไม่ต้องรีเซ็ตเป็นกิจกรรมรูทเมื่อใช้ปุ่ม HOME หรือไม่?

5
GridLayout และ Row / Column Span Woe
การแนะนำบล็อกโพสต์ของนักพัฒนา AndroidGridLayoutจะแสดงแผนภาพนี้ว่าช่วงเวลาส่งผลต่อการจัดสรรดัชนีอัตโนมัติอย่างไร: ฉันกำลังพยายามนำสิ่งนั้นไปใช้จริงโดยใช้ไฟล์GridLayout. นี่คือสิ่งที่ฉันมีจนถึงตอนนี้: <android.support.v7.widget.GridLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res/com.commonsware.android.gridlayout" android:layout_width="fill_parent" android:layout_height="fill_parent" app:orientation="horizontal" app:columnCount="8"> <Button app:layout_columnSpan="2" app:layout_rowSpan="2" android:layout_gravity="fill_horizontal" android:text="@string/string_1"/> <Button app:layout_columnSpan="2" android:layout_gravity="fill_horizontal" android:text="@string/string_2"/> <Button app:layout_rowSpan="4" android:text="@string/string_3"/> <Button app:layout_columnSpan="3" app:layout_rowSpan="2" android:layout_gravity="fill_horizontal" android:text="@string/string_4"/> <Button app:layout_columnSpan="3" android:layout_gravity="fill_horizontal" android:text="@string/string_5"/> <Button app:layout_columnSpan="2" android:layout_gravity="fill_horizontal" android:text="@string/string_6"/> <android.support.v7.widget.Space app:layout_column="0" android:layout_width="36dp" /> <android.support.v7.widget.Space android:layout_width="36dp" /> <android.support.v7.widget.Space android:layout_width="36dp" /> <android.support.v7.widget.Space android:layout_width="36dp" /> <android.support.v7.widget.Space …

11
จะปิด DialogFragment ได้อย่างไร?
เอกสารพูดสิ่งนี้สำหรับdismiss()วิธีการจากDialogคลาส: ปิดกล่องโต้ตอบนี้และลบออกจากหน้าจอ วิธีนี้สามารถเรียกใช้ได้อย่างปลอดภัยจากเธรดใด ๆ โปรดทราบว่าคุณไม่ควรแทนที่เมธอดนี้เพื่อทำการล้างข้อมูลเมื่อกล่องโต้ตอบถูกปิดใช้แทนใช้ในonStop(). ในรหัสของฉันสิ่งที่ฉันทำคือเรียกร้องgetDialog().dismiss()ให้ปิด onStop()แต่ผมไม่ได้ทำอะไรอย่างอื่นหรือแม้กระทั่งการใช้ ดังนั้นฉันจึงถามว่าจะยกเลิก a อย่างไรให้ถูกต้องDialogFragmentเพื่อหลีกเลี่ยงการรั่วไหลของหน่วยความจำ ฯลฯ

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