Ubah aktivitas awal aplikasi

386

Saya telah membuat daging dan nyali aplikasi saya, tetapi saya ingin menambahkan aktivitas lain yang akan menjadi titik awal (semacam layar masuk).

Pertanyaan pasangan:

  • 1 Saya memiliki pegangan yang cukup baik tentang cara beralih antar kegiatan (berdasarkan artikel ini: http://www.linux-mag.com/id/7498 ) tetapi saya tidak yakin bagaimana cara membuat yang baru ( dengan gerhana) .

  • 2 Setelah saya membuat aktivitas baru, bagaimana saya bisa mengaturnya sebagai aktivitas default aplikasi saya? Saya kira saya bisa mengubah nama kelas ... tetapi apakah ada cara yang lebih elegan untuk mengatasinya (mungkin di dalam AndroidManifest.xml)?

Kyle
sumber

Jawaban:

660

Ya, Anda menggunakan AndroidManifest.xmlfile. Anda bahkan dapat memiliki lebih dari satu aktivitas peluncur yang ditentukan dalam manifes aplikasi Anda. Untuk membuat aktivitas terlihat pada peluncur Anda menambahkan atribut ini ke aktivitas Anda di manifes:

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
Nathan Schwermann
sumber
49
Bagi siapa pun yang tidak tahu apa manifes yang dibicarakan oleh pos ini, itu adalah AndroidManifest.xml di root proyek Anda. Di Eclipse Anda dapat mengklik dua kali dan klik tab pada hak terjauh untuk mengedit XML secara langsung.
Austyn Mahoney
3
Terima kasih banyak. Jadi dengan memasukkan simpul maksud-filter dengan simpul anak itu, yang membuat aktivitas apa pun yang ada di yang pertama dimuat saat aplikasi dimulai?
Kyle
4
@Kyle itu akan membuat aktivitas itu muncul di halaman peluncur, Anda dapat memiliki beberapa aktivitas dengan filter maksud ini memberi Anda banyak ikon di layar beranda.
Nathan Schwermann
3
Anda menyebutkan baris ini "Anda sebenarnya dapat memiliki lebih dari satu aktivitas peluncur yang ditentukan dalam manifes aplikasi Anda". Aktivitas yang pertama kali akan diluncurkan jika kami memiliki lebih dari satu aktivitas
Tofeeq Ahmad
48
Ini jawaban yang benar, tetapi saya baru saja melihat sesuatu yang aneh: jika Anda mengubah Aktivitas awal ke hal lain, dan aktivitas asli yang diluncurkan masih ada, SDK tidak akan dapat meluncurkan aplikasi Anda lagi. Entah bagaimana itu memiliki referensi ke aktivitas pada konfigurasi peluncuran. Jadi setelah Anda melakukan perubahan di atas, Anda juga harus pergi ke "Run"> "Debug Configurations", cari profil build proyek Anda, tab "Android", dan ubah aktivitas yang diluncurkan menjadi default atau yang benar di bawah "Launch : ". Tidak yakin mengapa default tidak dipilih untuk saya, tetapi mengubahnya kembali berfungsi.
zeh
91

Buka AndroidManifest.xml di folder root proyek Anda dan ubah nama Kegiatan yang ingin Anda jalankan terlebih dahulu.

Contoh:

<activity android:name=".put your started activity name here"
          android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
neeraj t
sumber
11
jika dengan ini masih tidak berfungsi di Android Studio Anda harus mengklik ikon android (yang dengan aplikasi kata) dan pilih "Edit konfigurasi", lalu di tab Umum, bagian Kegiatan pilih "Luncurkan Aktivitas bawaan"
Senjata X
47

Jika Anda menggunakan Android Studio dan sebelumnya Anda mungkin memilih Aktivitas lain untuk diluncurkan.

Klik pada Run > Edit configurationdan kemudian pastikan bahwa Luncurkan Aktivitas default dipilih.

Luncurkan Aktivitas default

Zeezer
sumber
jika di AndroidManifest.xml tidak ada filter maksud untuk peluncur, ini solusinya.
Amir Fazwan
1
Ini juga berlaku untuk Eclipse. Menentukan filter maksud saja tidak cukup. Filter maksud digunakan jika APK dijalankan secara langsung oleh pengguna, tetapi jika APK dijalankan oleh Eclipse, yang menginstalnya, mencoba meluncurkan aktivitas tertentu. Aktivitas spesifik ini ditentukan dalam "Properti proyek" (klik kanan pada proyek) -> Run / Debug Settings.
Iker Jamardo Zugaza
Ini luar biasa! Terima kasih atas tipnya
Rafael Oliveira
30
 <application
    android:icon="@drawable/YOUR_ICON"    <!-- THIS ICON(IMAGE) WILL BE SHOWN IN YOUR APPS -->
    android:label="MY APP NAME " >    <!-- HERE LABEL(APP NAME) -->
    <activity
        android:name=".application's starting activity"  <!-- (.)dot means current dir, if your activity is in another package then give full package name ex: com.xxx.Activity  -->
        android:label="LABEL FOR ACTIVITY "
        android:screenOrientation="portrait" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
LMK
sumber
18

Ikuti instruksi di bawah ini:

1 :) Buka AndroidManifest.xmlfile Anda .

2 :) Buka kode aktivitas yang ingin Anda jadikan aktivitas utama Anda seperti di bawah ini.

seperti saya ingin menjadikan SplashScreen sebagai kegiatan utama

<activity
    android:name=".SplashScreen"
    android:screenOrientation="sensorPortrait"
    android:label="City Retails">
</activity>

3 :) Sekarang salin kode di bawah ini di antara tag aktivitas yang sama dengan:

<activity
    android:name=".SplashScreen"
    android:screenOrientation="sensorPortrait"
    android:label="City Retails">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

dan juga memeriksa bahwa baris yang baru ditambahkan tidak dilampirkan dengan tag aktivitas lain.

Bhunnu Baba
sumber
17

Ini mudah untuk diperbaiki.

  • Perubahan pada aktivitas Peluncur juga disimpan dalam konfigurasi Debug .
  • Pergi ke Run > Debug Configurationsdan edit pengaturan.
  • Ada juga pengaturan serupa di Intellij di bawah Run > Edit Configurationspilih Run default Activity dan itu tidak akan lagi menyimpan pengaturan dengan cara ini.
pengguna3154790
sumber
14

Itu mudah. Lakukan ini, di Manifestfile Anda .

<activity
    android:name="Your app name"
    android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.HOME" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
</activity>
Rohit Sharma
sumber
1
Anda harus menghapus <kategori android: name = "android.intent.category.HOME" />
Behrouz.M
2
<category android:name="android.intent.category.DEFAULT" />, itulah hal yang bekerja di sini
1111161171159459134
1
android.intent.category.HOMEdigunakan untuk aplikasi gaya mode Kios, tempat peluncur default diganti. Menggunakan ini tanpa mengganti Peluncur akan menghasilkan prompt selama awal SystemUI menanyakan peluncur mana yang akan digunakan. Lihat juga: stackoverflow.com/questions/22911156/…
CJBS
6
 <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
Pengecualian Null Pointer
sumber
5

Buka saja file AndroidManifest.xml Anda dan tambahkan seperti di bawah ini

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

kemudian simpan dan jalankan proyek android Anda.

pengguna3206168
sumber
3

Anda menambahkan ini Anda ingin memulai aktivitas android:exported="true"dalam file manifes seperti

 <activity
      android:name=".activities.activity.MainActivity"
      android:windowSoftInputMode="adjustPan"
      android:exported="true"/>
  <activity

Buka file java dari aktivitas ini dan klik kanan lalu klik Run 'main activity'

ATAU

Buka file java dari aktivitas ini dan tekan Ctrl+ Shift+ F10.

Mendalam Prabh
sumber
Apa dampaknya? Baru Diluncurkan?
chia yongkang
2

Dalam proyek terbaru saya mengubah aktivitas default di AndroidManifest.xml dengan:

<activity android:name=".MyAppRuntimePermissions">
</activity>

<activity android:name=".MyAppDisplay">
    <intent-filter>
        <action android:name="android.intent.activity.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

Di Android Studio 3.6; ini tampaknya rusak. Saya telah menggunakan teknik ini dalam aplikasi contoh, tetapi ketika saya menggunakannya dalam aplikasi dunia nyata ini gagal. IDE sekali lagi melaporkan:

Kesalahan menjalankan aplikasi: Aktivitas default tidak ditemukan.

IDE masih menunjukkan kesalahan konfigurasi di ruang "jalankan aplikasi" di bilah alat (panah kuning di tangkapan layar ini)

Kesalahan dalam konfigurasi "jalankan aplikasi"

Untuk memperbaiki kesalahan ini, saya telah mencoba beberapa pembangunan kembali proyek, dan akhirnya File >> "Valid Cache / Restart" . Ini tidak membantu. Untuk menjalankan aplikasi saya harus "Edit Konfigurasi" dan arahkan ke aktivitas spesifik alih-alih aktivitas default:

Edit kotak dialog konfigurasi

martshal
sumber