2010-11-18 2 views
0

Можно ли создать только один класс и использовать переменную для contentview? Я думаю о создании основного макета с множеством кнопок с идентификаторами. После нажатия кнопки он передает идентификатор классу и использует этот идентификатор для открытия определенного макета. Один класс, несколько макетов.Android: Можно ли создать динамику 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? 
    } 
} 
+0

Hmm (minlength) –

+0

Вы получили ответ? – Thomas

ответ

0

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); 

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

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