В моем приложении у меня есть одно действие (HomeActivity) и 3 фрагмента (у меня есть 3 кнопки). В HomeActivity у меня есть кнопки, которые должны были изменить его состояние после нажатия на него. При первом запуске приложения я нажимаю одну из этой кнопки, выбранное состояние изменено (в моем случае от белого до зеленого), но когда я нажимаю другую кнопку, все кнопки становятся недоступными (все кнопки белые). Может ли кто-нибудь сказать мне, в чем проблема?imageView выбранное состояние не отображается
public class HomeActivity implements View.OnClickListener {
private ImageView mMessageButton;
private ImageView mMapButton;
private ImageView mSettingsButton;
private int mCurrentFragmentId = DISCOUNT;
public List<ImageView> mPageItems;
public int mSelectedPage = 0;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.home);
init();
}
private void init(){
mMessageButton = (ImageView)findViewById(R.id.message_icon);
mMapButton = (ImageView)findViewById(R.id.map_icon);
mSettingsButton = (ImageView)findViewById(R.id.settings_icon);
mPageItems = new ArrayList<ImageView>();
mPageItems.add(mMessageButton);
mPageItems.add(mMapButton);
mPageItems.add(mSettingsButton);
mMessageButton.setOnClickListener(this);
mMapButton.setOnClickListener(this);
mSettingsButton.setOnClickListener(this);
}
public void addPage(final DefaultHeaderFragment pDefaultFragment, final boolean isAddToBackStack){
FragmentTransaction transaction = mFragmentManager.beginTransaction();
mPageItems.get(mSelectedPage).setSelected(true);
transaction.replace(R.id.f_pager, pDefaultFragment);
if (isAddToBackStack) transaction.addToBackStack(null);
transaction.commit();
}
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.message_icon:
mSelectedPage = 0;
MessagesFragment messagesFragment = new MessagesFragment(HomeActivity.this);
Bundle messageArgument = new Bundle();
messageArgument.putInt("fragmentId", mCurrentFragmentId);
messagesFragment.setArguments(messageArgument);
addPage(messagesFragment, true);
break;
case R.id.map_icon:
mSelectedPage = 1;
YandexMapFragment mapFragment = new YandexMapFragment(HomeActivity.this);
Bundle mapArgument = new Bundle();
mapArgument.putInt("fragmentId", mCurrentFragmentId);
mapFragment.setArguments(mapArgument);
addPage(mapFragment, true);
break;
case R.id.settings_icon:
mSelectedPage = 2;
SettingsFragment settingsFragment = new SettingsFragment(HomeActivity.this);
Bundle settingsArgument = new Bundle();
settingsArgument.putInt("fragmentId", mCurrentFragmentId);
settingsFragment.setArguments(settingsArgument);
addPage(settingsFragment, true);
break;
}
}
}
home.xml
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true">
<ImageView
android:id="@+id/message_icon"
android:layout_width="wrap_content"
android:layout_toLeftOf="@+id/map_icon"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/header_margin_between_icons"
android:layout_centerInParent="true"
android:src="@drawable/button_indicator_message_button"/>
<ImageView
android:id="@id/map_icon"
android:layout_width="wrap_content"
android:layout_toLeftOf="@+id/settings_icon"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/header_margin_between_icons"
android:layout_centerInParent="true"
android:src="@drawable/button_indicator_map_button"/>
<ImageView
android:id="@id/settings_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginRight="@dimen/header_marginLeft_marginRight"
android:layout_alignParentRight="true"
android:src="@drawable/button_indicator_settings_button"/>
</RelativeLayout>
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id = "@+id/f_pager"/>
</RelativeLayout>
button_indicator_message_button
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/message_pressed"/>
<item android:state_selected="true" android:drawable="@drawable/message_pressed"/>
<item android:drawable="@drawable/message_unpressed"/>
</selector>