2013-11-12 6 views
0

Я новичок в android У меня есть кнопка, когда я нажимаю на эту кнопку, она показывает всплывающее меню.
У этого есть два пункта день и ночь.
Когда я нажимаю ночную кнопку, вся тема активности меняется на черный, цвет текста белый и я нажимаю кнопку дня, ее изменение на белый, цвет текста черный.
У меня есть код, но его изменение только всплывающие меню theam.
Как я могу изменить свою деятельность.Как изменить тему активности в Android

Мой код:

first class 

btn_mode = (Button) findViewById(R.id.btn_content_mode); 
     btn_mode.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       System.out.println("bfr calling popup class"); 
       PopupMenu_Mode popup_mode=new PopupMenu_Mode(context, btn_mode); 
       popup_mode. Popup_Menu(); 
       //call_popupMode(); 

      } 
     }); 



second class 

public class PopupMenu_Mode extends Activity { 
    PopupMenu popup_Mode; 
    Context context; 
    Button b; 
    Activity activity; 

    public PopupMenu_Mode(Context context, Button btn_mode) { 
     // TODO Auto-generated constructor stub 

     this.b = btn_mode; 
     this.context = context; 
    } 

    public void Popup_Menu() { 
     // TODO Auto-generated constructor stub 

     System.out.println("inside popup mode class"); 
     popup_Mode = new PopupMenu(context, b); 
     popup_Mode.getMenuInflater().inflate(R.menu.mode, popup_Mode.getMenu()); 
     System.out.println("show popup mode "); 
     popup_Mode.show(); 
     popup_Mode.setOnMenuItemClickListener(new OnMenuItemClickListener() { 

      @Override 
      public boolean onMenuItemClick(MenuItem item) { 
       // TODO Auto-generated method stub 
       try { 
        switch (item.getItemId()) { 
        case R.id.day: 

         context.setTheme(R.style.AppThemeLight); 
         // l.setBackgroundColor(R.style.AppThemeDark); 
         break; 
        case R.id.night: 
         context.setTheme(R.style.AppThemeDark); 
        default: 
         break; 
        } 
       } catch (Exception e) { 
        // TODO: handle exception 
        Toast.makeText(getApplicationContext(), "nothing", 
          Toast.LENGTH_LONG).show(); 
       } 

       return false; 

      } 
     }); 

    } 

} 

style.xml

<style name="AppThemeLight" parent="android:Theme.Holo.Light"> 
    <item name="android:background">@color/white</item> 
    <item name="android:textColor">#000000</item> 
</style> 
<style name="AppThemeDark" parent="android:Theme.Holo"> 
    <item name="android:background">@color/black</item> 
    <item name="android:textColor">#FFFFFF</item> 
</style> 
+0

Вместо темы, установите цвет черный/белый на родительском макете. –

ответ

0

Вы можете изменить тему деятельности в OnCreate():

setTheme(android.R.style.Theme); 

Вы должны задать тему перед вызовом метода onCreate() 'и' setContentView().

+0

Но я хочу изменить цвет, когда я нажимаю только кнопку дня. –

+0

Вам нужно сделать то же самое, что мы обсуждали. Во всяком случае, пожалуйста, обратитесь к образцу на https://sites.google.com/site/ramkiranworks/customization/Themes.zip?attredirects=0&d=1 – Subbu

0

Вы можете изменить тему программно, как сказал Субраманий. Но обратитесь к этой ссылке https://code.google.com/p/android/issues/detail?id=4394, как было сказано ранее.

Вы должны позвонить по методу setTheme до super.onCreate() & setContentView() способ.

+0

Его работа для меня .. но я хочу изменить тему кнопкой click.how я могу сделать это .. –

Смежные вопросы