2011-11-24 28 views
8

Android (Java) Geliştirme için tamamen yeniyim ve bu konuda çok heyecanlıyım! Google'ın geliştiricileri kılavuzu harika ve küçük bir zamanda çok şey öğrendim. Hatta gece boyunca beni uyanık tutar;)Etkinlik için sınıf genişletme

Bugün, menü hazırlamaya başladım ve anlayamadığım bir şey var. Dersleri genişletmekle ilgili. rehber diyor:

İpucu: Uygulama birden etkinliklerini içeren ve bazıları aynı seçenekler menüsünü sağlamak ise, onCreateOptionsMenu (dışında hiçbir şey uygulayan bir etkinliği) ve onOptionsItemSelected() yöntemlerini oluşturmayı düşünün. Daha sonra, aynı Seçenekler Menüsünü paylaşması gereken her bir etkinliği için bu sınıfı genişletin. Bu şekilde, menü işlemlerini yönetmek için yalnızca bir kod kümesini yönetmek için var ve her bir soyundan gelen sınıf menü davranışlarını devralır.

anlayamadığım nokta bir sınıf genişletmek için nasıl ... Let Ben MainActivity ve SubActivity olduğunu varsayalım. Her iki etkinlikte de aynı menüye sahip olmak istiyorum, böylece bir MainMenuActivity. Bu sınıfı her iki etkinlik için nasıl genişletebilirim?

Evet Net arandım ama kullanılamaz. Bunu gerçekten anlamak istiyorum. Bu yüzden, herkesin bazı örnek kod + açıklamalarında bana yardımcı olabileceğini umuyorum. Şimdiden teşekkür ederim!!

+0

kontrol [Bu] (http: // stackoverflo w.com/questions/7618227/can-i-combine-my-code-into-some-kind-of-global-activity/7618263#7618263) ne hakkında konuştuğunuza benzer. –

cevap

18

ne anlama geldiklerini şudur: Normalde

sahip olacaktır: Eğer bu faaliyetlerin ... 4-5-6 varsa ve

public class MyActivity extends Activity{...} 

her biri aynı menüyü kullanır Kod, sadece 4-5-6 .. kez kopyalayıp yapıştırabilirsiniz.

public class BaseActivity extends Activity{ 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     //My menu code 
    } 
} 

Ve 4-5-6 ... Aktiviteler bu sınıfını kullanın: Veya bu yapabileceğini

public class MyActivity extends BaseActivity{...} 

içine menü oluşturma kodu kopyalayıp gerekmez Bu şekilde Tüm Etkinlikleriniz ve dahası, 4-5-6 ... sınıflarını düzenlemek zorunda değilsiniz. Menü kodu şimdi de MyActivity'da. Ayrıca bir göz here olabilir


, ne extends araçları açıklar.

+0

Çok teşekkür ederim! Şimdi anladım, düşündüğümden daha kolay! – MartijnG

9

Gerçekten çok basit.

MainMenuActivity

public class MainMenuActivity extends Activity { 
    //Override or add whatever functionality you want other classes to inherit. 
} 

MainActivity

public class MainActivity extends MainMenuActivity { 
    //Add what is specific to MainActivity. The menu will be inherited from MainMenuActivity. 
} 

SubActivity da

public class SubActivity extends MainMenuActivity { 
    //Add what is specific to SubActivity. The menu will be inherited from MainMenuActivity. 
}