Android: возможно ли сделать Contentview динамичным? - PullRequest
0 голосов
/ 18 ноября 2010

Можно ли создать только один класс и использовать переменную для contentview? Я думаю о создании основного макета с множеством кнопок с идентификаторами. Как только кнопка нажата, она передает идентификатор в класс и использует этот идентификатор для открытия определенного макета. Один класс, несколько макетов.

public class Main extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main); //is it possible to make 'main' a variable?
    }
}

1 Ответ

0 голосов
/ 18 ноября 2010

R.layout.main преобразуется в целое число (или, может быть, в длинное, я забыл), поэтому вы должны иметь возможность настроить какую-то структуру управления следующим образом:

switch (mSomeDeterminingFactor) {
    case 1:
        layoutChoice = R.layout.main
        break;
    case 2:
        layoutChoice = R.layout.altMain1
        break;
    case 3:
        layoutChoice = R.layout.altMain2
        break;
    case else:
        layoutChoice = R.layout.main
        break;
 }
 setContentView(layoutChoice);

Редактировать: Вы должны быть осторожны с тем, как использовать / сохранить / сохранить этот номер позже, поскольку вы не можете гарантировать, что значения ресурсов будут одинаковыми. Вы должны продолжать ссылаться на них через класс R.

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