2013-07-05 22 views
9

Ben şimdi bir düğme tıklandığında oprogramlama yoluyla

android:enabled="true" 

için değişmek almak gerektiğini istemek

android:enabled="false" 

olarak tutmuş Uygulamamda bir etkinliği var bir etkinliği etkinleştirme/devre dışı bırakma Bunu nasıl yapabilirim? etkinleştirmek veya uygulaması içinde herhangi bir bileşeni devre dışı bırakmak için

cevap

19

bir Aktivite etkinleştirmek/devre dışı bırakma bir örnek o:

public static void setActivityEnabled(Context context,final Class<? extends Activity> activityClass,final boolean enable) 
    { 
    final PackageManager pm=context.getPackageManager(); 
    final int enableFlag=enable ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED : PackageManager.COMPONENT_ENABLED_STATE_DISABLED; 
    pm.setComponentEnabledSetting(new ComponentName(context,activityClass),enableFlag,PackageManager.DONT_KILL_APP); 
    } 

örnek kullanımı:

setActivityEnabled(this,SomeActivity.class,false); 
+0

Düğümün onClick yönteminin altına koydum ve diyerek hata alıyorum "constructor ComponentName() undefined –

+2

yapıcıda bu bir bağlamdır, böylece myactivitenin olduğu yerde" myactivity.this "ile değiştirmeniz gerekecek düğmenizin ait olduğu etkinlik –

2

Kullanım PackageManager and setComponentEnabledSetting(): Burada yapmak için güzel bir yol

PackageManager pm = getPackageManager(); 
    pm.setComponentEnabledSetting(new ComponentName(this, com.packagename.MyActivity.class), 
            PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); 

    pm.setComponentEnabledSetting(new ComponentName(this, com.packagename.MyActivity.class), 
            PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP); 
+0

Yani bunu yalnızca bir düğme tıklandığında doğru yapabilir miyim? –

+0

@VyprNoch: Ne zaman istersen yapabilirsin. :-) – CommonsWare

+0

@CommonsWare: Bir sistem uygulaması olarak diğer paketlerden veya paketin kendisinden gelen bileşenleri devre dışı bırakabilir miyim? Yoksa sistem imzasını gerektiriyor mu? – Saty

3

: aktiviteyi, hizmet vb İşte

İlgili konular