2015-03-28 3 views
2

Я создаю список дел списка дел. Это приложение с 7 экранами для установки цели и завершения этого. A Снимок экрана here. Теперь при кодировании я понял, что в коде есть много избыточности, например:Android: рекомендации по рефакторингу кода

1> В течение 7 дней недели мне нужно создать 7 фрагментов, а затем для всех 7 фрагментов мне нужно выполнить точно такие же операции. Могу ли я сделать это без 7 фрагментов?

2> Есть 15 флажков и 15 текстовых изображений для всех - мне нужно получить ссылку, а затем выполнить операции onclick отдельно для каждого из них, а также задать текст и gettext на каждом, когда пользователь попытается их модифицировать.

здесь один из TextView изменить код:

ptext2 = (TextView) view.findViewById(R.id.p_textview2); 
     ptext2.setOnLongClickListener(new View.OnLongClickListener() { 
      @Override 
      public boolean onLongClick(View view) { 
       AlertDialog.Builder alertDialog = new AlertDialog.Builder(getActivity()); 
       alertDialog.setTitle("Target"); 
       alertDialog.setMessage("Set your target"); 
       final EditText input = new EditText(getActivity()); 
       alertDialog.setView(input); 
       alertDialog.setPositiveButton("Set", new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialogInterface, int i) { 
         String targetInp = input.getText().toString(); 
         ptext2.setText(targetInp); 
         p2 = ptext2.getText().toString(); 
         addEventsToDB(); 
        } 
       }); 
       alertDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialogInterface, int i) { 
        } 
       }); 
       alertDialog.show(); 
       return true; 
      } 
     }); 

так же есть более 15 для TextView, а затем CheckBox мне нужно сделать это для всех 7 фрагментов. Here is my full code of one of the fragment

Поскольку этот вид приложений является первым приложением для большинства пользователей, изучающих развитие Android, что нужно сделать для улучшения этого кода?

EDIT: Для нескольких кнопок onclick listener. Я создаю внутренний класс, а затем с помощью переключателя для конкретных операций с кнопками.

switch(view.getId()){ 
    case R.id.id1: 
     //do something 
     break; 
..... 
} 

От this SO answer. Теперь мне нужно только, чтобы выяснить, что делать около 7 фрагментов

+0

Есть ли в моем ответе, что вы не можете понять? Это решит вашу проблему. – damienix

+0

Я предлагаю создать еще один более конкретный вопрос об фрагментах с фрагментом кода. Трудно догадаться, о чем вы говорите, и здесь все становится немного грязно. – damienix

ответ

2

Что о именовании осуществлении View.OnLongClickListener класса как (Это может быть сделано только с одним фрагментом?):

class OnDayClickListener extends View.OnLongClickListener { 

    @Override 
    public boolean onLongClick(final View view) { 
     // here use view instead of ptext2 
    } 
} 

затем использовать

ptext2.setOnLongClickListener(new OnDayClickListener()); 
// this repeats for every textbox 
+0

Спасибо, это улучшит мой код. Можете ли вы советовать mre для этого в течение 7 дней недели, я создаю 7 фрагментов, а затем для всех 7 фрагментов я выполняю точно такие же операции. Могу ли я сделать это без 7 фрагментов? –

+0

Что вы имеете в виду, выполняя точно такие же операции? Я не разработчик Android, поэтому я не могу советовать с фрагментами в частности. Однако подобный трюк может быть использован и с компонентом фрагмента. – damienix

+0

ptext2.setText (targetInp); p2 = ptext2.getText(). ToString(); Как написать обобщенную реализацию этого для каждого текстового представления? –

Смежные вопросы