Как написать модульный код Android - PullRequest
0 голосов
/ 07 августа 2011

У меня есть 5 действий, каждое из которых отображает 10 кнопок.Кнопки отображаются или скрываются на основе данных из базы данных.В настоящее время у меня есть одинаковый код во всех 5 видах деятельности.Как создать отдельный модуль, который можно включить в каждое действие, чтобы мне не приходилось копировать код?

В настоящее время я включаю в каждый модуль один и тот же код, который находится внутри цикла:

if ( i == 1 ) ((Button) findViewById(R.id.btn1 )).setVisibility( visible ) ;
if ( i == 2 ) ((Button) findViewById(R.id.btn2 )).setVisibility( visible ) ;
if ( i == 3 ) ((Button) findViewById(R.id.btn3 )).setVisibility( visible ) ;
if ( i == 4 ) ((Button) findViewById(R.id.btn4 )).setVisibility( visible ) ;
if ( i == 5 ) ((Button) findViewById(R.id.btn5 )).setVisibility( visible ) ;

1 Ответ

1 голос
/ 07 августа 2011

Сначала, чтобы сделать код короче, вы можете создать массив идентификаторов и использовать i в качестве индекса:

int ids[] = { R.id.btn1, R.id.btn2, R.id.btn3, R.id.btn4,R.id.btn5};

// ....

if (i >= ids.length) {
  // some error
}
else {
    ((Button) findViewById(ids[i] )).setVisibility( visible );
}

Если кнопки отличаются от действия к действию, вы можете создать статический метод:

public static boolean setVisible(int[] ids, int i) {
    if (i >= ids.length) {
        return false;
    }
    else {
        ((Button) findViewById(ids[i] )).setVisibility( visible );
        return true;
    }    
}

Если они все одинаковые, вы можете создать массив как статический массив в том же классе, что и статический метод, и передать только индекс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...