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

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

4
จะใช้ interceptor เพื่อเพิ่ม Headers ใน Retrofit 2.0 ได้อย่างไร?
ทีมของเราตัดสินใจที่จะใช้Retrofit 2.0และฉันกำลังทำการวิจัยเบื้องต้นเกี่ยวกับเรื่องนี้ ฉันเป็นมือใหม่ของห้องสมุดนี้ ฉันสงสัยว่าจะใช้interceptorเพิ่มส่วนหัวที่กำหนดเองผ่านRetrofits 2.0ในแอป Android ของเราได้อย่างไร มีบทเรียนมากมายเกี่ยวกับการใช้interceptorเพื่อเพิ่มส่วนหัวใน Retrofit 1.X แต่เนื่องจาก API มีการเปลี่ยนแปลงไปมากในเวอร์ชันล่าสุดฉันจึงไม่แน่ใจว่าจะปรับวิธีการเหล่านั้นอย่างไรในเวอร์ชันใหม่ นอกจากนี้ Retrofit ยังไม่ได้อัปเดตเอกสารใหม่ ตัวอย่างเช่นในโค้ดต่อไปนี้ฉันจะใช้Interceptorคลาสเพื่อเพิ่มส่วนหัวพิเศษได้อย่างไร นอกจากนี้วัตถุที่ไม่มีเอกสารChainคืออะไร? เมื่อไหร่จะintercept()เรียก? OkHttpClient client = new OkHttpClient(); client.interceptors().add(new Interceptor() { @Override public Response intercept(Chain chain) throws IOException { Response response = chain.proceed(chain.request()); // How to add extra headers? return response; } }); Retrofit …
96 java  android  retrofit 

17
รายการที่คุณร้องขอไม่สามารถซื้อได้
ฉันพยายามรวมการซื้อในแอปของ Android Market เข้ากับแอปของฉัน แต่น่าเสียดายที่พบข้อผิดพลาดที่น่ารำคาญทุกครั้งที่ฉันพยายามซื้อผลิตภัณฑ์ที่ไม่เหมาะสมจริง ฉันได้นำแอปพลิเคชันตัวอย่าง (Dungeons) และเพิ่มลงในแอปของฉัน ฉันได้อัปเดตคีย์สาธารณะและอัปเดตรายการผลิตภัณฑ์ดังต่อไปนี้: / ** รายการรายการสินค้าสำหรับสินค้าที่สามารถซื้อได้ * / private static final CatalogEntry[] CATALOG = new CatalogEntry[] { new CatalogEntry("full", "Full v", Managed.MANAGED), }; ฉันได้ส่งออกแอปพลิเคชันโดยใช้ Eclipse และติดตั้งลงในโทรศัพท์ของฉันและอัปโหลดไปยังเว็บไซต์ Android Market นอกจากนี้ในเว็บไซต์ Android Market ฉันได้เพิ่มแบบเต็มเป็นการซื้อในแอปและเผยแพร่แล้ว ฉันได้เพิ่มบัญชี googlemail ของฉันเป็นบัญชีทดสอบด้วย (นั่นคือบัญชีที่ฉันลงชื่อเข้าใช้ในโทรศัพท์ของฉัน) เมื่อฉันเรียกใช้แอปพลิเคชันบนโทรศัพท์ของฉันฉันได้รับรายการที่คุณร้องขอไม่สามารถซื้อได้สำหรับข้อความ Android เมื่อใดก็ตามที่ฉันพยายามซื้อเต็ม แต่ถ้าฉันลองเช่น android.test.purchased มันก็ใช้งานได้ดี เอกสารสำหรับรายการที่คุณขอไม่มีให้ซื้อ Android …

12
มุมมองนี้ไม่มีข้อ จำกัด
ฉันได้รับข้อผิดพลาดต่อไปนี้และฉันใช้ Android studio 2.2 Preview 3 ฉันค้นหาใน Google แต่ไม่พบแหล่งข้อมูลใด ๆ Error: This view is not constrained, it only has design time positions, so it will jump to (0,0) unless you add constraints <TextView android:layout_width="384dp" android:layout_height="207dp" android:textAppearance="?android:attr/textAppearanceLarge" android:text="@string/calc_default_display" android:id="@+id/textView" android:background="#ffffff" android:layout_margin="0dp" android:gravity="bottom|end" android:textSize="70sp" android:nestedScrollingEnabled="false" android:maxLines="2" android:maxLength="17" tools:layout_editor_absoluteX="0dp" tools:layout_editor_absoluteY="0dp" />
96 java  android  layout 

9
SwipeRefreshLayout + ViewPager จำกัด การเลื่อนในแนวนอนเท่านั้นหรือไม่
ฉันใช้งานSwipeRefreshLayoutแล้วและViewPagerในแอปของฉัน แต่มีปัญหาใหญ่เมื่อใดก็ตามที่ฉันจะปัดไปทางซ้าย / ขวาเพื่อสลับไปมาระหว่างหน้าการเลื่อนนั้นไวเกินไป การปัดลงเล็กน้อยจะทำให้เกิดการSwipeRefreshLayoutรีเฟรชด้วย ฉันต้องการตั้งค่าขีด จำกัด เมื่อเริ่มการปัดในแนวนอนจากนั้นบังคับแนวนอนเท่านั้นจนกว่าการปัดจะสิ้นสุด กล่าวอีกนัยหนึ่งคือฉันต้องการยกเลิกการปัดในแนวตั้งเมื่อนิ้วเคลื่อนที่ในแนวนอน ปัญหานี้จะเกิดขึ้นก็ต่อViewPagerเมื่อฉันปัดลงและSwipeRefreshLayoutฟังก์ชันรีเฟรชถูกเรียกใช้ (แถบจะแสดงขึ้น) จากนั้นฉันเลื่อนนิ้วในแนวนอนก็ยังอนุญาตให้ใช้การกวาดนิ้วในแนวตั้งเท่านั้น ฉันพยายามขยายViewPagerชั้นเรียน แต่ไม่ได้ผลเลย: public class CustomViewPager extends ViewPager { public CustomViewPager(Context ctx, AttributeSet attrs) { super(ctx, attrs); } @Override public boolean onInterceptTouchEvent(MotionEvent ev) { boolean in = super.onInterceptTouchEvent(ev); if (in) { getParent().requestDisallowInterceptTouchEvent(true); this.requestDisallowInterceptTouchEvent(true); } return false; } } xml …

12
Fragments onResume จาก back stack
ฉันใช้แพ็คเกจความเข้ากันได้เพื่อใช้ Fragments กับ Android 2.2 เมื่อใช้แฟรกเมนต์และเพิ่มการเปลี่ยนระหว่างพวกมันไปที่แบ็คสแต็กฉันต้องการให้เกิดพฤติกรรมเดียวกันของ onResume ของกิจกรรมนั่นคือเมื่อใดก็ตามที่แฟรกเมนต์ถูกนำไปที่ "โฟร์กราวด์" (ผู้ใช้มองเห็นได้) หลังจากที่โผล่ออกมาจาก backstack ฉันต้องการให้มีการเปิดใช้งานการโทรกลับบางประเภทภายในส่วน (เพื่อทำการเปลี่ยนแปลงบางอย่างในทรัพยากร UI ที่แชร์เป็นต้น) ฉันเห็นว่าไม่มีการเรียกกลับภายในกรอบส่วนย่อย มีแนวทางปฏิบัติที่ดีเพื่อให้บรรลุเป้าหมายนี้หรือไม่?

2
Android Spanned, SpannedString, Spannable, SpannableString และ CharSequence
ข้อเสนอของ Android ที่มีความหลากหลายของการเชื่อมต่อทั้งหมดที่เกี่ยวข้องกับข้อความและสตริง: Spanned, SpannedString, Spannable, และSpannableStringCharSequence ฉันได้ใช้สิ่งที่กล่าวมาทั้งหมดในสถานการณ์ต่างๆโดยปกติหลังจากใช้Html.fromHtml()เพื่อแสดงข้อความที่เชื่อมโยงได้ภายใน a TextViewเพื่อใช้สไตล์บางอย่างกับมัน ฉันได้พยายามทำความเข้าใจวัตถุประสงค์ / การใช้งานอินเทอร์เฟซเหล่านี้จากเอกสารอย่างเป็นทางการของ Android และล้มเหลวเนื่องจากค่อนข้างสับสน .. อินเทอร์เฟซเหล่านี้มีจุดประสงค์อะไร? มักใช้ในสถานการณ์ใด ควรหลีกเลี่ยงการใช้ในกรณีใด มีผลกระทบด้านประสิทธิภาพที่ชัดเจนที่ต้องพิจารณาเมื่อใช้อย่างใดอย่างหนึ่งหรือไม่? หากใครสามารถให้คำอธิบายที่ดีได้จะได้รับการชื่นชมมาก
96 android  textview 


19
วิธีป้องกันไม่ให้โหลดกิจกรรมสองครั้งเมื่อกดปุ่ม
ฉันพยายามป้องกันไม่ให้โหลดกิจกรรมซ้ำสองครั้งหากฉันกดปุ่มสองครั้งทันทีหลังจากคลิกครั้งแรก ฉันมีกิจกรรมที่โหลดเมื่อคลิกปุ่มพูด myButton.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { //Load another activity } }); ตอนนี้เนื่องจากกิจกรรมที่จะโหลดมีการเรียกเครือข่ายจึงต้องใช้เวลาเล็กน้อยในการโหลด (MVC) ฉันแสดงมุมมองการโหลดสำหรับสิ่งนี้ แต่ถ้าฉันกดปุ่มสองครั้งก่อนหน้านั้นฉันจะเห็นกิจกรรมที่กำลังโหลดสองครั้ง มีใครรู้วิธีป้องกันปัญหานี้หรือไม่?

24
ไม่สามารถเรียกใช้ sdkmanager --list ด้วย Java 9
ฉันดาวน์โหลดและติดตั้ง: JDK ( jdk-9.0.1_osx-x64_bin.dmg) จาก Oracle ที่นี่ Android SDK ( sdk-tools-darwin-3859397.zip) จาก Google ที่นี่ หลังจากกำหนดค่าPATHตัวแปรแล้วฉันได้ลองรันsdkmanagerซึ่งแทนที่androidคำสั่งสำหรับจัดการส่วนประกอบ SDK อย่างไรก็ตามมันล้มเหลวดังที่แสดงไว้ที่นี่: $ sdkmanager --list Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156) at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75) at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81) at com.android.sdklib.tool.SdkManagerCli.main(SdkManagerCli.java:117) at com.android.sdklib.tool.SdkManagerCli.main(SdkManagerCli.java:93) Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496) ... 5 more นี่คือเวอร์ชัน …

10
ฉันสามารถใช้ไลบรารีที่รองรับ Android กับโปรเจ็กต์ Androidx ได้ไหม
ฉันรู้ว่าandroidx และการพึ่งพาการสนับสนุนทำให้เกิดข้อผิดพลาด multidex เราไม่สามารถใช้การสนับสนุน androidx และ android ในเวลาเดียวกันได้ ดังนั้นฉันจึงย้ายไปที่ androidx ทั้งหมด แต่หนึ่งใน lib ที่พึ่งพาของฉันใช้การสนับสนุน android "lottie" เราจะทำอะไรได้บ้างในสถานการณ์ข้างต้น? ฉันควรลบ 'ล็อตตี้' ออกจากโครงการของฉันหรือไม่ ด้านล่างนี้คือผู้กล้าของฉัน defaultConfig { minSdkVersion 19 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true multiDexEnabled true } ext{ lottieVersion = "2.5.4" } dependencies { implementation fileTree(dir: 'libs', include: …

3
เหตุใดจึงมีคลาสย่อย MutableLiveData ของ LiveData แยกต่างหาก
ดูเหมือนว่าจะMutableLiveDataแตกต่างจากLiveDataการทำให้setValue()และpostValue()วิธีการสาธารณะเท่านั้นในขณะที่LiveDataพวกเขาได้รับการคุ้มครอง มีเหตุผลอะไรบ้างในการสร้างคลาสแยกต่างหากสำหรับการเปลี่ยนแปลงนี้และไม่เพียงกำหนดวิธีการเหล่านั้นให้เป็นแบบสาธารณะในLiveDataตัวเอง โดยทั่วไปแล้วรูปแบบของการสืบทอด (การเพิ่มการมองเห็นของวิธีการบางอย่างเป็นการเปลี่ยนแปลงเพียงอย่างเดียว) การปฏิบัติที่รู้จักกันดีและมีสถานการณ์ใดบ้างที่อาจเป็นประโยชน์ (สมมติว่าเราสามารถเข้าถึงรหัสทั้งหมดได้)

1
การทำความเข้าใจที่เก็บคีย์ใบรับรองและนามแฝง
ที่เก็บคีย์เป็นใบรับรองจริงหรือเป็นชื่อแทนใบรับรอง? หากฉันใช้นามแฝงอื่นในการลงนามแอปจะทำให้การอัปเดตในตลาดยุ่งหรือไม่ หรือฉันจะต้องลงนามแอปด้วยคีย์สโตร์อื่นเพื่อทำสิ่งต่างๆให้วุ่นวาย และข้อมูลภายใต้นามแฝงสามารถดูได้จากที่ไหน?

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

11
วิธีปรับแต่งเลย์เอาต์ของ snackBar
มีวิธีใดในการเปลี่ยนเค้าโครงของ snackBar เป็นมุมมองแบบกำหนดเองหรือไม่? ตอนนี้กลายเป็นสีดำและเราสามารถเปลี่ยนสีพื้นหลังได้ แต่ฉันไม่รู้วิธีที่ถูกต้องในการขยายเค้าโครงใหม่และทำให้เป็นพื้นหลัง snackBars? ขอบคุณ ...

17
Android: วิธีซ่อน ActionBar ในกิจกรรมบางอย่าง
ฉันได้พัฒนาแอปพลิเคชั่นสาธิตง่ายๆด้วยหน้าจอเริ่มต้นแผนที่และหน้าจอปกติบางส่วน ฉันมีแถบการทำงานที่ด้านบนซึ่งมีโลโก้ ทุกอย่างดูดีบนโทรศัพท์ของฉัน (Galaxy s1 I9000 V2.3) แต่เมื่อฉันทดสอบบน Galaxy s2 v4 แถบการกระทำจะปรากฏในหน้าจอเริ่มต้นและในหน้าจอแผนที่ด้วย กิจกรรม spalsh และแผนที่ไม่ได้สืบทอดมาจาก ActionBarActivity ด้วยซ้ำดังนั้นจะเป็นไปได้อย่างไรและฉันจะทำให้มันหายไปได้อย่างไร ประจักษ์: <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:theme="@style/Theme.AppCompat.Light" > <activity android:name=".HomeActivity" android:icon="@drawable/android_logo" android:label="" android:logo="@drawable/android_logo" > <!-- <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> --> </activity> <activity android:name=".MapActivity" android:label="" > </activity> <activity android:name=".PackageActivity" android:icon="@drawable/android_logo" android:label="" android:logo="@drawable/android_logo" …

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