我有一个使用xml的自定义操作栏。我想根据位置动态更改左图像。该位置等于switch语句的情况,因此不是问题。我做错了什么?
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>
答案 0 :(得分: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);