2016-11-22 2 views
0

У меня есть рабочая настраиваемая панель действий с использованием xml. Я хочу динамически менять левое изображение из-за местоположения. Расположение равно случаю оператора switch, так что это не проблема. Что я делаю неправильно?Динамическое изменение источника ImageView на пользовательской панели действий

ImageView universityLogo; 
    Global global = new Global(); 
    View v2 = View.inflate(this, R.layout.my_action_bar, null); 
    universityLogo = (ImageView)v2.findViewById(R.id.buttonLeft); 
    switch(global.getLocation()){ 
     case "33613": 
      universityLogo.setImageResource(R.drawable.diploma); 
    } 
    ActionBar actionBar = getSupportActionBar(); 
    actionBar.setDisplayShowHomeEnabled(false); 
    View mActionBarView = getLayoutInflater().inflate(R.layout.my_action_bar, null); 
    actionBar.setCustomView(mActionBarView); 
    actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); 
} 

и XML

<ImageButton 
    android:id="@+id/buttonRight" 
    android:layout_marginTop="10dp" 
    android:layout_marginRight="10dp" 
    android:layout_height="30dp" 
    android:layout_width="30dp" 
    android:layout_alignParentRight="true" 
    android:background="@drawable/location" 
    /> 
<ImageView 
    android:id="@+id/buttonLeft" 
    android:layout_marginTop="10dp" 
    android:layout_marginRight="10dp" 
    android:layout_height="30dp" 
    android:layout_width="30dp" 
    android:layout_alignParentLeft="true" 
    /> 
<ImageView 
    android:id="@+id/logo" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:src="@drawable/actionbarlogo" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" /> 

</RelativeLayout> 

ответ

2

Почему вы использовали ниже линии в два раза?

View mActionBarView = getLayoutInflater().inflate(R.layout.my_action_bar, null); 

Вы настроили представление и снова инициализировали это снова. вы код хотел бы ниже

mageView universityLogo; 
    Global global = new Global(); 
    View v2 = View.inflate(this, R.layout.my_action_bar, null); 
    universityLogo = (ImageView)v2.findViewById(R.id.buttonLeft); 
    switch(global.getLocation()){ 
     case "33613": 
      universityLogo.setImageResource(R.drawable.diploma); 
    } 
    ActionBar actionBar = getSupportActionBar(); 
    actionBar.setDisplayShowHomeEnabled(false); 

    actionBar.setCustomView(mActionBarView); 
    actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); 
+0

честной ошибки, спасибо –

+0

голосов тех, с менее чем 15 репутациями записываются, но не меняют публично отображаемую записи счет –

+0

Нет Проблему !!!! –

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