Bildansicht ausgewählten Zustand nicht angezeigt

In meiner Anwendung habe ich eine Aktivität (HomeActivity) und 3 Fragmente (Also ich habe 3 Tasten). In HomeActivity ich habe buttons sollte verändert seinen Zustand nach Klick auf es. Beim ersten ausführen der Anwendung, die ich drücken Sie diese Taste ausgewählten Status geändert (in meinem Fall weiß auf grün) aber wenn ich drücken Sie eine andere Taste alle Tasten kommen nicht ausgewählt (alle Tasten ist weiß). Könnte mir jemand sagen, was ist das problem hier?

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>
InformationsquelleAutor | 2013-07-13
Schreibe einen Kommentar