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

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

8
startForeground ล้มเหลวหลังจากอัปเกรดเป็น Android 8.1
หลังจากอัพเกรดโทรศัพท์เป็น 8.1 Developer Preview Preview บริการของฉันไม่เริ่มทำงานอย่างถูกต้อง ในบริการที่ใช้เวลานานของฉันฉันได้ใช้วิธีการ startForeground เพื่อเริ่มการแจ้งเตือนอย่างต่อเนื่องซึ่งเรียกว่าเมื่อสร้าง @TargetApi(Build.VERSION_CODES.O) private fun startForeground() { // Safe call, handled by compat lib. val notificationBuilder = NotificationCompat.Builder(this, DEFAULT_CHANNEL_ID) val notification = notificationBuilder.setOngoing(true) .setSmallIcon(R.drawable.ic_launcher_foreground) .build() startForeground(101, notification) } ข้อความผิดพลาด: 11-28 11:47:53.349 24704-24704/$PACKAGE_NAMEE/AndroidRuntime: FATAL EXCEPTION: main Process: $PACKAGE_NAME, PID: 24704 android.app.RemoteServiceException: Bad notification for …

14
getActivity () ส่งคืนค่า null ในฟังก์ชัน Fragment
ฉันมีแฟรกเมนต์ (F1) ด้วยวิธีสาธารณะเช่นนี้ public void asd() { if (getActivity() == null) { Log.d("yes","it is null"); } } และใช่เมื่อฉันเรียกมันว่า (จากกิจกรรม) มันเป็นโมฆะ ... FragmentTransaction transaction1 = getSupportFragmentManager().beginTransaction(); F1 f1 = new F1(); transaction1.replace(R.id.upperPart, f1); transaction1.commit(); f1.asd(); ต้องเป็นสิ่งที่ฉันทำผิดมาก แต่ฉันไม่รู้ว่ามันคืออะไร

21
เป็นไปได้ไหมที่จะเปลี่ยนที่บันทึกอุปกรณ์เสมือนของ Android
ฉันได้ตั้งค่า Android SDK และ Eclipse บนเครื่องของฉันที่ใช้ Windows XP และ AVD (อุปกรณ์เสมือน Android) จะถูกบันทึกลงใน "Documents and Settings \ user \ .android" ตามค่าเริ่มต้น มีวิธีใดบ้างที่จะเปลี่ยนพฤติกรรมนี้? ฉันมีส่วนประกอบอื่น ๆ ทั้งหมดที่บันทึกไว้ในไดเร็กทอรีบนพาร์ติชันแยกต่างหากและต้องการให้ทุกอย่างรวมเข้าด้วยกัน เห็นได้ชัดว่าไม่ใช่เรื่องใหญ่ แต่มีใครรู้วิธีแก้ปัญหานี้หรือไม่?
192 windows  android  avd 

15
ปัญหาการเรนเดอร์ Android Studio
ฉันใช้Android Studio 0.2.3และเมื่อเปิดเค้าโครงกิจกรรมตามปกติภาพตัวอย่างควรปรากฏที่ด้านขวาเพื่อให้ฉันสามารถสลับระหว่างโหมดข้อความและการออกแบบซึ่งควรแสดงตัวอย่างของเค้าโครงอีกครั้ง แต่ไม่มีการแสดงตัวอย่างที่ไม่ได้อยู่ทางด้านขวาไม่ใช่เมื่อฉันอยู่ในโหมดข้อความหรือในโหมดการออกแบบ ฉันเพิ่งได้รับข้อผิดพลาดrendering problems... เมื่อฉันรวบรวมทุกอย่างและติดตั้งแอปในอุปกรณ์ของฉันมันจะทำงานได้โดยไม่มีข้อผิดพลาด สำหรับการพัฒนาและทดลองใช้เลย์เอาต์มันคงจะดีถ้าฉันสามารถดูตัวอย่างการทำงานได้ ฉันได้ลองสลับไปมาระหว่างอุปกรณ์ต่าง ๆ ในสตูดิโอ แต่ก็ไม่ประสบความสำเร็จ ไม่มีใครรู้วิธีแก้ปัญหานี้?

6
วิธีใช้ ViewPager ที่มี Fragments / Layouts ต่างกัน
เมื่อฉันเริ่มกิจกรรมที่ใช้ viewpager ผู้ดูจะสร้างแฟรกเมนต์ต่างๆ ฉันต้องการใช้เลย์เอาต์ที่แตกต่างกันสำหรับแต่ละแฟรกเมนต์ แต่ปัญหาคือ viewpager แสดงเพียงสองเลย์เอาท์ที่สูงสุด (เลย์เอาต์ที่สองของแฟรกเมนต์ที่เหลือทั้งหมดหลังจาก 1) นี่คือรหัสสำหรับSwipeActivityซึ่งใช้ viewpager: public class SwipeActivity extends FragmentActivity { MyPageAdapter pageAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_swipe); pageAdapter = new MyPageAdapter(getSupportFragmentManager()); ViewPager pager=(ViewPager)findViewById(R.id.pager); pager.setAdapter(pageAdapter); ActionBar bar = getActionBar(); bar.setDisplayHomeAsUpEnabled(true); } /** * Custom Page adapter */ private class MyPageAdapter extends …

30
ข้อผิดพลาดของ Android: การดำเนินการล้มเหลวสำหรับงาน ': app: transformClassesWithDexForRelease'
ปัญหาคือฉันสามารถเรียกใช้แอพของฉันเมื่อฉันเปลี่ยนเป็นdebugโหมด แต่มันล้มเหลวเมื่อฉันเปลี่ยนเป็นreleaseโหมด ข้อยกเว้น: **FAILURE: Build failed with an exception.** > Execution failed for task ':app:transformClassesWithDexForRelease'. > com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1 เมื่อฉันรันคำสั่ง gradle build ด้วย stacktrace แล้วนี่คือสิ่งที่ฉันได้รับ ./gradlew app:transformClassesWithDexForRelease --stacktrace > com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java'' finished with …

7
Google Maps Android API v2 - ข้อมูลแบบอินเทอร์แอคทีฟหน้าต่าง (เหมือนใน android google maps ดั้งเดิม)
ฉันพยายามกำหนดเองInfoWindowหลังจากคลิกที่เครื่องหมายด้วย Google Maps API v2 ใหม่ ฉันต้องการให้มันดูเหมือนในแอปพลิเคชันแผนที่ดั้งเดิมโดย Google แบบนี้: เมื่อฉันมีImageButtonภายในไม่ทำงาน - ทั้งหมดInfoWindowเป็น slected ImageButtonและไม่เพียง ฉันอ่านว่าเป็นเพราะไม่มีViewตัวของมันเอง แต่เป็นภาพรวมดังนั้นแต่ละรายการจึงไม่สามารถแยกความแตกต่างจากกันและกัน แก้ไข: ในเอกสาร (ขอบคุณDisco S2 ): ดังที่ได้กล่าวไว้ในส่วนก่อนหน้าของหน้าต่างข้อมูลหน้าต่างข้อมูลไม่ใช่มุมมองแบบสด แต่มุมมองจะแสดงเป็นรูปภาพบนแผนที่ ด้วยเหตุนี้ผู้ฟังที่คุณตั้งค่าในมุมมองจะถูกเพิกเฉยและคุณไม่สามารถแยกความแตกต่างระหว่างเหตุการณ์การคลิกในส่วนต่างๆของมุมมอง คุณไม่ควรวางองค์ประกอบแบบอินเทอร์แอคทีฟเช่นปุ่มช่องทำเครื่องหมายหรืออินพุตข้อความไว้ในหน้าต่างข้อมูลที่กำหนดเองของคุณ แต่ถ้า Google ใช้มันจะต้องมีวิธีที่จะทำให้มัน ไม่มีใครมีความคิดใด ๆ

10
ทำไม“ System.out.println” ไม่ทำงานใน Android
ฉันต้องการพิมพ์บางอย่างในคอนโซลเพื่อให้สามารถดีบักได้ แต่ด้วยเหตุผลบางอย่างไม่มีอะไรพิมพ์ในแอปพลิเคชัน Android ของฉัน ฉันจะดีบักได้อย่างไร public class HelloWebview extends Activity { WebView webview; private static final String LOG_TAG = "WebViewDemo"; private class HelloWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } } /** Called when the activity is first created. */ @Override public …

10
ข้อความของศูนย์ Android บนแคนวาส
ฉันกำลังพยายามแสดงข้อความโดยใช้รหัสด้านล่าง ปัญหาคือข้อความไม่อยู่กึ่งกลางแนวนอน เมื่อฉันตั้งค่าพิกัดdrawTextมันจะตั้งค่าด้านล่างของข้อความที่ตำแหน่งนี้ ฉันต้องการให้วาดข้อความเพื่อให้ข้อความอยู่กึ่งกลางในแนวนอน นี่เป็นภาพเพื่อแสดงปัญหาของฉันเพิ่มเติม: @Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub super.onDraw(canvas); //canvas.drawRGB(2, 2, 200); Paint textPaint = new Paint(); textPaint.setARGB(200, 254, 0, 0); textPaint.setTextAlign(Align.CENTER); textPaint.setTypeface(font); textPaint.setTextSize(300); canvas.drawText("Hello", canvas.getWidth()/2, canvas.getHeight()/2 , textPaint); }

8
Android Paint: .measureText () vs .getTextBounds ()
ฉันกำลังวัดข้อความโดยใช้Paint.getTextBounds()เนื่องจากฉันสนใจที่จะให้ทั้งความสูงและความกว้างของข้อความแสดงผล อย่างไรก็ตามข้อความจริงที่แสดงอยู่เสมอ bit กว้างกว่า.width()ของข้อมูลที่เต็มไปด้วยRectgetTextBounds() ฉันประหลาดใจเมื่อฉันทดสอบ.measureText()และพบว่ามันส่งกลับค่า (สูงกว่า) ที่แตกต่างกัน ฉันลองดูและพบว่าถูกต้อง เหตุใดพวกเขาจึงรายงานความกว้างที่แตกต่างกัน ฉันจะรับความสูงและความกว้างได้อย่างไร ฉันหมายความว่าฉันสามารถใช้.measureText()แต่แล้วฉันจะไม่ทราบว่าผมควรจะไว้วางใจกลับโดย.height()getTextBounds() ตามที่ร้องขอนี่คือรหัสขั้นต่ำในการทำให้เกิดปัญหาอีกครั้ง: final String someText = "Hello. I believe I'm some text!"; Paint p = new Paint(); Rect bounds = new Rect(); for (float f = 10; f < 40; f += 1f) { p.setTextSize(f); p.getTextBounds(someText, 0, someText.length(), bounds); Log.d("Test", …

10
Android: อนุญาตภาพเหมือนและแนวนอนสำหรับแท็บเล็ต แต่บังคับให้ถ่ายภาพบุคคลในโทรศัพท์
ฉันต้องการให้แท็บเล็ตสามารถแสดงในแนวตั้งและแนวนอน (sw600dp หรือสูงกว่า) ได้ แต่โทรศัพท์จะถูก จำกัด เฉพาะแนวตั้งเท่านั้น ฉันไม่พบวิธีที่จะเลือกการวางแนวแบบมีเงื่อนไข ข้อเสนอแนะใด ๆ

22
เปลี่ยนประเภทอินพุตของ EditText จาก PASSWORD เป็น NORMAL & ในทางกลับกันโดยทางโปรแกรม
ในแอปพลิเคชันของฉันฉันมีEditTextประเภทอินพุตเริ่มต้นถูกตั้งค่าเป็นandroid:inputType="textPassword"deault มันมีCheckBoxทางด้านขวาซึ่งเมื่อตรวจสอบจะเปลี่ยนประเภทอินพุตของ EditText นั้นเป็น NORMAL PLAIN TEXT รหัสสำหรับนั่นคือ password.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); ปัญหาของฉันคือเมื่อไม่ได้ทำเครื่องหมายที่ช่องทำเครื่องหมายมันควรตั้งค่าประเภทอินพุตเป็น PASSWORD อีกครั้ง ฉันทำมันโดยใช้ - password.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD); แต่ข้อความภายใน edittext นั้นยังคงปรากฏให้เห็น และสำหรับความประหลาดใจเมื่อฉันเปลี่ยน orienatation มันจะตั้งค่าประเภทการป้อนข้อมูลเป็น PASSWORD โดยอัตโนมัติและข้อความภายในเป็นสัญลักษณ์แสดงหัวข้อย่อย (แสดงเหมือนรหัสผ่าน) มีวิธีใดบ้างในการบรรลุเป้าหมายนี้?

9
เปลี่ยนระยะเวลาการหมดเวลาวอลเล่ย์
ฉันใช้กรอบการทำงานใหม่ของ Volley สำหรับ Android เพื่อส่งคำขอไปยังเซิร์ฟเวอร์ของฉัน แต่มันจะหมดเวลาก่อนที่จะได้รับคำตอบแม้ว่ามันจะตอบสนอง ฉันพยายามเพิ่มรหัสนี้: HttpConnectionParams.setConnectionTimeout(httpParams, 5000); HttpConnectionParams.setSoTimeout(httpParams, timeoutMs); ในHttpClientStackเฟรมเวิร์กของ Volley ให้เป็นจำนวนเต็มที่แตกต่างกัน (50000) แต่ยังคงหมดเวลาก่อน 50 วินาที มีวิธีการเปลี่ยนการหมดเวลาเป็นค่ายาวหรือไม่?

14
ผลกระทบระลอกคลื่นบน Android Lollipop CardView
ฉันพยายามรับ CardView เพื่อแสดงเอฟเฟกต์ระลอกคลื่นเมื่อสัมผัสโดยการตั้งค่าแอตทริบิวต์ android: backgound ในไฟล์ XML ของกิจกรรมตามที่อธิบายไว้ที่นี่ในหน้านักพัฒนา Android แต่มันไม่ทำงาน ไม่มีภาพเคลื่อนไหวเลย แต่มีการเรียกเมธอดใน onClick ฉันได้ลองสร้างไฟล์ ripple.xml ตามที่แนะนำที่นี่แต่ผลลัพธ์เดียวกัน CardView ตามที่ปรากฏในไฟล์ XML ของกิจกรรม: <android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto" android:layout_width="155dp" android:layout_height="230dp" android:elevation="4dp" android:translationZ="5dp" android:clickable="true" android:focusable="true" android:focusableInTouchMode="true" android:onClick="showNotices" android:background="?android:attr/selectableItemBackground" android:id="@+id/notices_card" card_view:cardCornerRadius="2dp"> </android.support.v7.widget.CardView> ฉันค่อนข้างใหม่สำหรับการพัฒนาแอนดรอยด์ดังนั้นฉันอาจทำผิดพลาดเล็กน้อย

18
Android - ช่วง SPAN_EXCLUSIVE_EXCLUSIVE ไม่สามารถมีความยาวเป็นศูนย์ได้
ฉันมีเค้าโครงต่อไปนี้ (ว่างเปล่าจริง): <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/set_layout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:contentDescription="content desc" android:orientation="vertical" > <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello, I am a TextView" /> </LinearLayout> ชั้นกิจกรรมมีดังต่อไปนี้: public class TestActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_test); } } เมื่อฉันเรียกใช้สิ่งนี้บนอุปกรณ์มือถือฉันพบข้อผิดพลาดต่อไปนี้: SpannableStringBuilder SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length …
190 java  android 

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