【发布时间】:2016-07-03 10:56:13
【问题描述】:
所以在我的应用程序中,我有一堆片段供用户浏览。我的活动类中有很多用于片段转换的方法。它们彼此非常相似,唯一的区别是 newFragment 的类。这是其中一种方法:
public void onHelpSelected() {
slideInRight();
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
HelpFragment newFragment = new HelpFragment();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container, newFragment);
transaction.addToBackStack(null);
transaction.commit();
slideOutLeft();
}
}, 500);
}
然后,我还有一些描述每个片段的类。它们彼此也非常相似:它们的区别仅在于按钮的数量和这些按钮的作用(但大多数按钮用于片段转换)。以下是这些类之一:
public class AuthFragment extends Fragment {
Button authRegButton;
Button authHelpButton;
OnHelpButtonListener helpCallback;
OnRegButtonListener regCallback;
@Override
public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_auth, container, false);
authHelpButton = (Button) view.findViewById(R.id.auth_help_button);
View.OnClickListener authHelpListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
helpCallback.onHelpSelected();
}
};
authHelpButton.setOnClickListener(authHelpListener);
authRegButton = (Button) view.findViewById(R.id.auth_reg_button);
View.OnClickListener authRegListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
regCallback.onRegSelected();
}
};
authRegButton.setOnClickListener(authRegListener);
return view;
}
public interface OnHelpButtonListener {
void onHelpSelected();
}
public interface OnRegButtonListener {
void onRegSelected();
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
try {
helpCallback = (OnHelpButtonListener) context;
} catch (ClassCastException e) {
throw new ClassCastException(context.toString()
+ " must implement OnHelpButtonListener");
}
try {
regCallback = (OnRegButtonListener) context;
} catch (ClassCastException e) {
throw new ClassCastException(context.toString()
+ " must implement OnRegButtonListener");
}
}
}
所以,我有很多非常相似的代码。我敢打赌,有一种方法可以让所有这些代码看起来更漂亮,工作效率更高。
因此,我的问题是我该怎么做? :)
谢谢!
【问题讨论】:
标签: java android optimization transition