Android та же кнопка и просмотр списка во всех действиях
Я хочу задать вопрос об оптимизации моего кода. Я работаю над проектом, и у меня есть код, работающий для списков onItemClick и обработчика нажатий кнопок, проблема в том, что у меня есть 9 различных действий, и мне нужно копировать и вставлять один и тот же код во все мои действия, проблема, с которой я сталкиваюсь, это слишком много одна и та же копия кода, вставленная в каждое действие
Выделенный раздел в скользящем меню одинаков во всех активациях, все, что мне нужно сделать, это снова и снова регистрировать их списки кликов, чтобы они работали, и копировать один и тот же код во всех действиях. я хочу, чтобы он был общим, то есть код, написанный в одном месте, должен работать для всех видов деятельности. Это приложение находится в режиме окончательного запуска, и я не могу перейти к скользящему меню с помощью навигационного ящика, что было основной причиной, по которой я использовал этот подход, а в верхнем меню также есть разные кнопки, управление которыми необходимо динамически выполнять. Я пытался сделать это статичным, но это не сработало. Спасибо за ваше время и ответы.
4 ответа
То, что Гейб упоминает, было бы идеальным путем. Однако, если вы хотите продолжить несколько действий, вы можете создать класс, расширяющий Activity
со всем кодом для скользящего меню внутри. Затем убедитесь, что все остальные действия расширяют созданный вами новый класс.
Это звучит как идеальное использование для фрагмента. Поместите представления и связанный код в фрагмент и включите фрагмент в каждое действие.
Посетите Android Sliding Menu, используя учебник Navigation Drawer для использования ящика навигации...
это может помочь вам..
Это решение этой проблемы
public class SuperActivity extends Activity implements OnClickListener,
OnItemClickListener {
protected static Button btn_logout;
protected static ListView lv_SlidingMenu;
protected static FlyOutContainer rootView;
protected static TextView tv_userName;
protected static TextView tv_memberSince;
protected static ImageView iv_userImage;
protected static ImageView iv_top_home;
protected static TextView tv_top_home;
protected ImageView iv_slidingmenu;
protected static SlidingMenuAdapter slidingMenuAdapter = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
// TODO Auto-generated method stub
switch(parent.getId()){
case R.id.list:
switch(position){
case 0:
GeneralDataModel.actionIntent = new Intent(this,
ActivityTheGreatControversy.class);
this.startActivity(GeneralDataModel.actionIntent);
break;
case 1:
break;
case 2:
GeneralDataModel.actionIntent = new Intent(this,
AtlastActivity.class);
this.startActivity(GeneralDataModel.actionIntent);
break;
case 3:
GeneralDataModel.actionIntent = new Intent(this,
MediaActivity.class);
this.startActivity(GeneralDataModel.actionIntent);
break;
case 4:
GeneralDataModel.actionIntent = new Intent(this,
TimeLineActivity.class);
this.startActivity(GeneralDataModel.actionIntent);
break;
case 6:
GeneralDataModel.actionIntent = new Intent(getApplicationContext(),
ActivityNotes.class);
this.startActivity(GeneralDataModel.actionIntent);
GeneralDataModel.actionIntent = null;
break;
case 10:
GeneralDataModel.actionIntent = new Intent(this,
ActivitySettings.class);
this.startActivity(GeneralDataModel.actionIntent);
rootView.toggleMenu();
break;
default:
rootView.toggleMenu();
break;
}
break;
}
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), "CLICKEDiy", Toast.LENGTH_LONG)
.show();
switch (v.getId()) {
case R.id.btn_sliding_logout:
GeneralDataModel.actionIntent = new Intent(getApplicationContext(),
LoginSignup.class);
GeneralDataModel.actionIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(GeneralDataModel.actionIntent);
GeneralDataModel.actionIntent = null;
new SessionManager(this).logoutUser();
this.finish();
break;
case R.id.iv_home_slidingmenu:
rootView.toggleMenu();
break;
}
}
protected void fillSlidingMenu() {
tv_userName.setText(UserInformation.getFirstName() + " "
+ UserInformation.getLastName());
tv_memberSince.setText(UserInformation.getMemberSince());
lv_SlidingMenu.setAdapter(slidingMenuAdapter);
}
}
и выведите все свои действия из этого класса
Тогда в их onClickListners просто вызовите super.onclick(v);