Android如何针对不同的标签操作栏操作(自定义布局)?

时间:2015-04-24 06:26:38

标签: android android-actionbar android-tabs android-actionbar-compat

我正在使用Actionbar支持库。我自定义了标题并在布局中添加了一个按钮。

现在,我有2个带有扩展片段的操作选项卡。我想在不同的标签中为不同的功能使用相同的按钮。

我正在使用Actionbar活动。以下是我的代码。

自定义操作栏布局

   <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#00FFFFFF" >

        <TextView
            android:id="@+id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:maxLines="1"
            android:text="@string/app_name"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textColor="@color/app_green" />

        <CheckBox
            android:id="@+id/selectAll"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_alignParentRight="true"
            android:layout_gravity="top|right"
            android:button="@drawable/checkbox"
            android:focusable="false"
            android:focusableInTouchMode="false" />

    </RelativeLayout>

我的第一个片段

   public class TestPhotos extends Fragment {

    @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setHasOptionsMenu(true);
    selectAll();
        }

        private void selectAll() {

            CheckBox b = (CheckBox) getActivity().findViewById(R.id.selectAll);
            if (AutoBackupSettings.getInstance().isPhotoBackup()) {
                b.setVisibility(View.INVISIBLE);
                transferLayout.setVisibility(View.VISIBLE);
            } else {
                b.setVisibility(View.VISIBLE);
                transferLayout.setVisibility(View.GONE);
            }
            b.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub

                    if (stickyAdapter != null) {
                        if (stickyAdapter.getSelectedCount() == stickyAdapter.list
                                .size()) {
                            stickyAdapter.deselectAll();
                        } else {
                            stickyAdapter.selectAll();
                            ((PhotosActivity) getActivity())
                                    .setActionBarTitle(getResources().getString(
                                            R.string.all));
                        }
                    }

                }
            });
        }

    }

我的第二个片段

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
         setHasOptionsMenu(true);
         selectAll();

    }

    private void selectAll() {

        CheckBox b = (CheckBox) getActivity().findViewById(R.id.selectAll);
        if (AutoBackupSettings.getInstance().isPhotoBackup()) {
            b.setVisibility(View.INVISIBLE);
        } else {
            b.setVisibility(View.VISIBLE);
        }
        b.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                if (listAdapter != null) {
                    if (listAdapter.getSelectedCount() == listAdapter.list
                            .size()) {
                        listAdapter.deselectAll();
                    } else {
                        listAdapter.selectAll();
                        ((PhotosActivity) getActivity())
                                .setActionBarTitle(getResources().getString(
                                        R.string.all));
                    }
                }

            }
        });
    }

它在第一个片段中工作正常,但我滑动到第二个片段并单击复选框,它适用于第一个片段但不适用于第二个片段。

0 个答案:

没有答案