Cara menyusun metode umum untuk berbagai aktivitas

Saya menggunakan aktivitas baru untuk ActivityButtons. Jadi saya punya 10 aktivitas berbeda, semuanya menggunakan footer yang sama. Pada bagian footer terdapat tombol dan banyak sekali event klik. Saya baru saja menyalin semua acara pendengar untuk tombol Footer ke beberapa aktivitas lain untuk mengujinya. Ini berfungsi tetapi saya perlu menemukan cara untuk menyatukan semuanya di suatu tempat sehingga saya hanya akan memodifikasinya sekali ketika saya perlu.

Saya mencoba menyimpan semua metode umum di kelas utilitas terpisah dengan menjadikannya statis, namun penggunaannya terbatas. Saya mengalami masalah dengan referensi dan metode non-statis.

Dalam penelitian saya, saya telah membaca tentang ViewFlipper. Apakah akan lebih baik jika saya menggunakan satu MainActivity untuk semuanya dan ViewFlipper untuk beralih antar tata letak. Saya telah membaca bahwa hal ini mungkin menyebabkan beberapa masalah sumber daya, karena satu-satunya aktivitas akan aktif sepanjang waktu.

Apakah Anda punya saran untuk masalah ini?

Terima kasih sebelumnya.


person wervdon    schedule 21.01.2013    source sumber


Jawaban (2)


Ada beberapa hal yang perlu dipertimbangkan.

Pertama, footer adalah pola desain yang agak bermasalah di Android. Karena perangkat dengan tombol lunak tepat di bawah area layar sangat mudah bagi pengguna untuk secara tidak sengaja mengklik tombol sistem saat hendak mengarahkan footer, dan sebaliknya. Jika Anda tidak ingin menggunakan footer, saya sarankan Anda menyisakan margin yang cukup antara footer dan tepi bawah layar untuk membantu mengurangi hal ini.

Anda memiliki beberapa opsi tentang cara menangani tata letak dan pendengar klik. Anda dapat membuat footer menjadi Fragment miliknya sendiri dan cukup menambahkannya ke setiap Aktivitas yang membutuhkannya. Ini bisa dibilang merupakan pendekatan yang lebih sulit, namun ini akan memberikan pengalaman belajar yang baik dengan Fragmen jika Anda siap menghadapi tantangan ini.

Pilihan lainnya adalah memasukkan semua pendengar klik footer Anda ke dalam aktivitas mereka sendiri dan kemudian memperluasnya dengan semua aktivitas Anda yang lain. Sesuatu seperti ini:

public class FooterActivity extends Activity{
    Button btn1
    //...
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.id.yourLayout);
        btn1 = (Button)findViewById(R.id.btn1);
        btn1.setOnClickListener(yourClickListener);
        //...
    }
}

Kemudian dalam aktivitas normal Anda ubah extends Activity menjadi extends FooterActivity

person FoamyGuy    schedule 21.01.2013

Anda dapat membuat ParentActivity, yang akan menangani metode onClick, dan kemudian membiarkan Activities Anda yang lain ke extend ParentActivity itu melakukan apa yang spesifik untuk mereka.

Pendekatan lainnya adalah dengan menggunakan Fragments. Buat satu fragmen yang akan menangani Footer, dan fragmen lainnya akan berbeda berdasarkan pekerjaan yang diharapkan dapat dilakukan.

person Tomislav Novoselec    schedule 21.01.2013
comment
Saya akan memeriksa keduanya dan melaporkan kembali - person wervdon; 21.01.2013