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

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

2
ไวยากรณ์สำหรับการเขียนความคิดเห็นในไฟล์ build.gradle คืออะไร
มองดูbuild.gradleไฟล์นี้ apply plugin: 'com.android.application' android { compileSdkVersion 21 buildToolsVersion "21.1.2" defaultConfig { applicationId "package.myapp" minSdkVersion 19 targetSdkVersion 21 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.nineoldandroids:library:2.4.0' } เกิดอะไรขึ้นถ้าผมอยากจะเขียนความคิดเห็นเกี่ยวกับทำไมผมเลือกห้องสมุดนี้สำหรับโครงการนี้ , ไวยากรณ์สำหรับการเขียนความคิดเห็นในbuild.gradleไฟล์คืออะไร?

14
วิธีจำลอง Android ที่ฆ่ากระบวนการของฉัน
Android จะฆ่ากระบวนการหากอยู่ในพื้นหลังและระบบปฏิบัติการต้องการทรัพยากร (RAM, CPU และอื่น ๆ ) ฉันต้องสามารถจำลองพฤติกรรมนี้ในระหว่างการทดสอบเพื่อให้มั่นใจได้ว่าแอปพลิเคชันของฉันทำงานได้อย่างถูกต้อง ฉันต้องการที่จะสามารถทำสิ่งนี้ด้วยวิธีอัตโนมัติเพื่อให้ฉันสามารถทดสอบว่าแอปพลิเคชันทำงานอย่างถูกต้องหรือไม่เมื่อใดก็ตามที่เกิดเหตุการณ์นี้ขึ้นซึ่งหมายความว่าฉันจะต้องทดสอบสิ่งนี้ในทุกกิจกรรมเป็นต้น ฉันรู้วิธีฆ่ากระบวนการของฉัน นั่นไม่ใช่ปัญหา ปัญหาคือว่าเมื่อฉันฆ่ากระบวนการของฉัน (ใช้ DDMS, adb shell kill, Process.killProcess()ฯลฯ ) Android ไม่เริ่มต้นใหม่ได้เช่นเดียวกับที่มันจะถ้าระบบปฏิบัติการ Android ได้ฆ่าตัวเอง หากระบบปฏิบัติการ Android ฆ่ากระบวนการ (เนื่องจากความต้องการทรัพยากร) เมื่อผู้ใช้กลับสู่การประยุกต์ใช้ Android จะสร้างกระบวนการแล้วสร้างกิจกรรมบนสแต็กิจกรรม (เรียกonCreate()) ในทางกลับกันถ้าฉันฆ่ากระบวนการAndroid จะถือว่ากิจกรรมที่ด้านบนของกิจกรรมสแต็คนั้นมีพฤติกรรมที่ไม่ดีดังนั้นมันจะสร้างกระบวนการขึ้นมาใหม่โดยอัตโนมัติแล้วเอากิจกรรมด้านบนออกจากกิจกรรมสแต็ก กิจกรรมยอดนิยม (เรียก onCreate () `) นี่ไม่ใช่พฤติกรรมที่ฉันต้องการ ฉันต้องการพฤติกรรมเช่นเดียวกับเมื่อ Android ฆ่ากระบวนการ เพียงเพื่ออธิบายเป็นภาพหากกองกิจกรรมของฉันมีลักษณะดังนี้: ActivityA -> ActivityB -> ActivityC -> ActivityD …
174 android 

6
transitive = true ใน Gradle ทำอะไรกันแน่ (wrt crashlytics)
Gradle transitive = trueทำอะไรกันแน่ มันไม่ได้เป็นที่ชัดเจนจากเอกสาร Gradle นี้อยู่ในบริบทของภายในcompile build.gradleในกรณีของฉันฉันขึ้นอยู่กับความล้มเหลวของ Android compile('com.crashlytics.sdk.android:crashlytics:2.2.2@aar') { transitive = true; } เอกสาร Gradle หลายฉบับ ( ที่นี่และที่นี่ ) บ่งบอกว่าค่าเริ่มต้น "สกรรมกริยา" เป็นจริง ยังเอาtransitive = trueผลลัพธ์ในการอ้างอิงสกรรมกริยาที่ไม่ได้นำเข้ามา (โดยเฉพาะKitGroup) class file for io.fabric.sdk.android.KitGroup not found เอกสารบอกว่าเป็นค่าเริ่มต้นที่เป็นจริง แต่พฤติกรรมที่แท้จริงดูเหมือนจะตรงกันข้าม ฉันกำลังใช้ Gradle 2.2.1 พฤติกรรมที่เปลี่ยนไประหว่าง 2.2 และ 2.4? แก้ไข : การอ้างอิง Transitiveที่เกี่ยวข้องไม่ได้รับการแก้ไขสำหรับไลบรารี aar โดยใช้การไล่ระดับสี

14
วิธีใส่อักขระช่องว่างเป็นชื่อสตริงใน XML ได้อย่างไร
ฉันได้กำหนดสตริงบางอย่างในstrings.xmlไฟล์ ตอนนี้ฉันต้องใส่ช่องว่างพิเศษระหว่างตัวเลขบางตัวในสตริง เมื่อฉันพิมพ์อักขระเว้นวรรคพิเศษสิ่งนี้จะไม่ปรากฏในแอปพลิเคชัน ก่อน: <string name="spelatonertext3">-4, 5, -5, 6, -6, และถ้าฉันเพิ่มพื้นที่พิเศษเช่นนี้: <string name="spelatonertext3">-4, 5, -5, 6, -6, มันมีลักษณะเหมือนกันในแอป ฉันจะสร้างอักขระช่องว่างในสตริง XML ได้อย่างไร
174 android  xml  whitespace 

21
ภาพพื้นหลังจะกระโดดเมื่อแถบที่อยู่ซ่อน iOS / Android / Mobile Chrome
ฉันกำลังพัฒนาเว็บไซต์ที่ตอบสนองโดยใช้ Twitter Bootstrap ไซต์นี้มีภาพพื้นหลังแบบเต็มหน้าจอในอุปกรณ์เคลื่อนที่ / แท็บเล็ต / เดสก์ท็อป ภาพเหล่านี้หมุนและจางหายไปโดยใช้สอง divs มันเกือบจะสมบูรณ์แบบยกเว้นเรื่องเดียว การใช้ iOS Safari, เบราว์เซอร์ Android หรือ Chrome บน Android พื้นหลังจะกระโดดเล็กน้อยเมื่อผู้ใช้เลื่อนหน้าลงและทำให้แถบที่อยู่ซ่อน เว็บไซต์อยู่ที่นี่: http://lt2.daveclarke.me/ ไปที่อุปกรณ์พกพาแล้วเลื่อนลงและคุณจะเห็นภาพมีขนาด / ย้าย รหัสที่ฉันใช้สำหรับพื้นหลัง DIV มีดังนี้: #bg1 { background-color: #3d3d3f; background-repeat:no-repeat; background-attachment:fixed; background-position:center center; -webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; background-size: cover; position:fixed; width:100%; height:100%; left:0px; top:0px; …

6
เหตุใดฉันจึงต้องการหลีกเลี่ยงสิ่งก่อสร้างที่ไม่ใช่ค่าเริ่มต้นในเศษ
ฉันกำลังสร้างแอพด้วยFragmentsและในหนึ่งในนั้นฉันสร้างคอนสตรัคเตอร์ที่ไม่ใช่ค่าเริ่มต้นและได้รับคำเตือนนี้: Avoid non-default constructors in fragments: use a default constructor plus Fragment#setArguments(Bundle) instead มีใครบอกฉันได้ไหมว่าทำไมนี่จึงไม่ใช่ความคิดที่ดี คุณยังสามารถแนะนำว่าฉันจะทำสิ่งนี้ให้สำเร็จได้อย่างไร: public static class MenuFragment extends ListFragment { public ListView listView1; Categories category; //this is my "non-default" constructor public MenuFragment(Categories category){ this.category = category; }.... หากไม่ใช้ตัวสร้างที่ไม่ใช่ค่าเริ่มต้น

16
วิธีแยกวิเคราะห์ไฟล์ AndroidManifest.xml ภายในแพ็คเกจ. apk
ไฟล์นี้ดูเหมือนจะอยู่ในรูปแบบ XML ไบนารี รูปแบบนี้คืออะไรและสามารถแยกวิเคราะห์แบบเป็นโปรแกรมได้อย่างไร (ตรงข้ามกับการใช้เครื่องมือการถ่ายโอนข้อมูล aapt ใน SDK) รูปแบบนี้ไบนารีไม่ได้กล่าวถึงในเอกสารที่นี่ หมายเหตุ : ฉันต้องการเข้าถึงข้อมูลนี้จากนอกสภาพแวดล้อม Android โดยเฉพาะจาก Java

17
วิธีการบังคับให้รูปแบบทั้งหมดดูการรีเฟรช?
ฉันต้องการบังคับให้มุมมองทรัพยากรเค้าโครงหลักที่จะวาดใหม่ / รีเฟรชในพูดว่าวิธีการ Activity.onResume () ฉันจะทำสิ่งนี้ได้อย่างไร ตามมุมมองเลย์เอาต์หลักฉันหมายถึงหนึ่ง ('R.layout.mainscreen' ด้านล่าง) ที่เรียกว่าใน Activity.onCreate () ของฉันดังนี้: - protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.mainscreen); }
173 android  layout  refresh 

10
ฉันจะดาวน์โหลด Android SDK โดยไม่ต้องดาวน์โหลด Android Studio ได้อย่างไร
ณ ตอนนี้ฉันใช้พีซี Windows 8.1 ที่ไม่มีที่เก็บข้อมูลหรือ RAM สำหรับ IDE เช่น Android Studio หรือ Eclipse ฉันต้องการดาวน์โหลดเครื่องมือ Android SDK โดยไม่มี IDE สิ่งนี้จะสำเร็จได้อย่างไร

4
เหตุใดการสร้างประเภทจึงแตกต่างจากรสชาติของผลิตภัณฑ์
คำนำ: นี่ไม่ใช่คำถามเกี่ยวกับวิธีใช้ชนิดบิลด์และรสชาติของผลิตภัณฑ์ในแอพ Android ฉันเข้าใจแนวคิดพื้นฐานที่เกี่ยวข้อง คำถามนี้เกี่ยวกับการพยายามทำความเข้าใจกับการกำหนดค่าที่ควรระบุในรูปแบบบิลด์ซึ่งการกำหนดค่าควรจะระบุในรสชาติของผลิตภัณฑ์และความแตกต่างใด ๆ ที่จำเป็นจริงๆ สัปดาห์นี้ฉันได้เรียนรู้เพิ่มเติมเกี่ยวกับการกำหนดค่าแบบค่อยเป็นค่อยไปสำหรับแอพ Android ตอนแรกฉันคิดว่าฉันมีความสามารถที่ดีในการสร้างประเภทและรสชาติของผลิตภัณฑ์ แต่ยิ่งฉันได้รับเอกสารมากเท่าไหร่ฉันก็ยิ่งรู้ว่าความแตกต่างระหว่างคนทั้งสองไม่ชัดเจนสำหรับฉันเลย เนื่องจากมีลำดับชั้นที่กำหนดไว้อย่างดี (ในแง่ที่ว่าคุณสมบัติที่ระบุในบิลด์ประเภทมีความสำคัญมากกว่าที่ระบุในรสชาติผลิตภัณฑ์) ฉันไม่เข้าใจว่าทำไมจึงมีความจำเป็นที่จะต้องแยกแยะระหว่างบิลด์ประเภทและรสชาติผลิตภัณฑ์เลย จะเป็นการดีกว่าที่จะรวมคุณสมบัติและวิธีการทั้งหมดลงในวัตถุ DSL สำหรับรสชาติของผลิตภัณฑ์และจากนั้นให้ถือว่าประเภทการสร้างเป็นมิติเริ่มต้นของรสชาติ ตัวอย่างที่เป็นรูปธรรมบางอย่างที่นำไปสู่ความสับสนของฉัน: signingConfigคุณสมบัติสามารถตั้งค่าในการสร้างทั้งชนิดและรสชาติสินค้า ... แต่minifyEnabled(และผมถือว่าshrinkResources?) เท่านั้นที่สามารถกำหนดค่าในการสร้างประเภท applicationIdสามารถระบุได้เฉพาะในรสชาติผลิตภัณฑ์ ... และapplicationIdSuffixสามารถระบุได้เฉพาะในประเภทบิลด์!? คำถามจริง : จากตัวอย่างข้างต้น: มีความแตกต่างที่ชัดเจนระหว่างบทบาทของประเภทการสร้างและรสชาติของผลิตภัณฑ์หรือไม่ ถ้าอย่างนั้นเป็นวิธีที่ดีที่สุดที่จะเข้าใจมันคืออะไร? ถ้าไม่เป็นแผนในที่สุดจะรวมประเภทการสร้างและรสชาติของผลิตภัณฑ์เป็นวัตถุ DSL ที่กำหนดค่าได้หรือไม่

6
สร้างไฟล์ aar ใน Android Studio
ฉันต้องการสร้างไฟล์ aar สำหรับห้องสมุดของฉันใน Android Studio ฉันจะใช้ตัวเลือก jar แต่ห้องสมุดของฉันมีทรัพยากร มีความคิดวิธีสร้างไฟล์ aar จากห้องสมุดบ้างไหม?

30
com.google.android.gms: มีการร้องขอ play-services-measure-base จากห้องสมุดอื่น ๆ
ฉันอัปเดตเป็น gradle 4.0.1 และเริ่มได้รับข้อผิดพลาดต่อไปนี้ ห้องสมุด com.google.android.gms: play-services-measure-base กำลังถูกร้องขอโดยห้องสมุดอื่น ๆ อีกมากมายที่ [[15.0.4,15.0.4]] แต่แก้ไขเป็น 15.0.2 ปิดใช้งานปลั๊กอินและตรวจสอบโครงสร้างการพึ่งพาของคุณโดยใช้. /gradlew: แอพ: การอ้างอิง โครงการของฉันไม่ได้ใช้การพึ่งพานั้นดังนั้นฉันจึงค้นหาทั่วโลกและมันขึ้นมาข้างในเท่านั้น สร้าง / ปานกลาง / ผ้าสำลีแคช / maven.google / ดอทคอม / Google / Android / กรัม / กลุ่ม index.xml เช่นเดียวกับสายนี้ <play-services-measurement-base versions="15.0.0,15.0.2"/> ดังนั้นฉันจึงพยายามลบโฟลเดอร์สร้างและทำความสะอาดโครงการ แต่จะสร้างใหม่ด้วยค่าเดียวกัน: / ดังนั้นข้อผิดพลาดยังคงอยู่

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); ... และด้วยเหตุนี้เราจึงจำไม่ได้ว่าต้องเปลี่ยนแปลงความกว้างและความสูงของกล่องโต้ตอบในอนาคตทั้งสองแห่ง

10
วิธีการเปลี่ยนเวอร์ชั่น Android และหมายเลขรุ่นของรหัส?
วิธีการเปลี่ยนเวอร์ชั่น Android และรหัสเวอร์ชั่น Android Studio ฉันต้องการเปลี่ยนไฟล์ apk (แอพ) บน Google Play และฉันต้องเปลี่ยนรุ่น Android และหมายเลขรหัส ฉันลองกับมันในไฟล์ AndroidManifest.xml ใน Android Studio: <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.bestsoftcorporation.circle.app" android:versionCode="101" android:versionName="2.0"> แต่มันไม่ทำงาน เมื่อฉันพยายามเผยแพร่บน Google Play แสดงว่าฉันต้องเปลี่ยนชื่อเวอร์ชั่นและรหัสของ Android

10
startActivityForResult () จากกิจกรรมย่อยและสิ้นสุดเด็กไม่เรียก onActivityResult () เป็นแฟรกเมนต์
FirstActivity.Javaมีที่โทร FragmentA.Java โทรแต่ไม่เคยได้รับการเรียกที่ถูกเขียนในstartActivityForResult()SecondActivity.Javafinish()onActivityResultFragmentA.Java FragmentA.Java รหัส: @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); // some code Intent i = new Intent(getActivity(), SecondActivity.class); i.putExtra("helloString", helloString); getActivity().startActivityForResult(i, 1); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); getActivity(); if(requestCode == 1 && resultCode == Activity.RESULT_OK) { //some code …

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