我正在使用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));
}
}
}
});
}
它在第一个片段中工作正常,但我滑动到第二个片段并单击复选框,它适用于第一个片段但不适用于第二个片段。