2013-07-10 4 views
0

Текстовый редактор моего приложения позволяет пользователю открывать и редактировать файлы, я хочу открыть файл в качестве новой вкладки в TabHost, чтобы можно было открыть несколько файлов. Как добавить EditText к недавно созданной вкладке? Это то, что я пытался в моем OnCreate()Как я могу программно создать вкладку с EditText в ней?

TabHost tabHost=(TabHost)findViewById(R.id.tabHost); 
     tabHost.setup(); 
     EditText editor = new EditText(this); 
     TabSpec spec1=tabHost.newTabSpec("Tab 1"); 
     spec1.setContent(editor.getId()); 
     spec1.setIndicator("Tab 1"); 

Я предполагаю, что проблема `spec1.setContent (editor.getId());

+0

Можете ли вы разместить свой «xml»? –

+0

xml здесь не относится –

+0

Не думал так :) Пытаюсь ответить Рафаэлю. 1 сек – RapsFan1981

ответ

1

Вы пытаетесь установить идентификатор (который не был определен путем) в качестве идентификатора макета. Это не сработает. Попытка:

TabHost tabHost=(TabHost)findViewById(R.id.tabHost); 
     tabHost.setup(); 
     EditText editor = new EditText(this); 
     TabSpec spec1=tabHost.newTabSpec("Tab 1"); 
     spec1.setIndicator(editor); 

Если это то, что вы хотите. Вы также можете попробовать:

TabHost tabHost=(TabHost)findViewById(R.id.tabHost); 
      tabHost.setup(); 
      final EditText editor = new EditText(this); 
      TabSpec spec1=tabHost.newTabSpec("Tab 1"); 
      spec1.setContent(new TabHost.TabContentFactory(){ 
       public View createTabContent(String tag){ 
        return editor; 
       } 
      }); 
Смежные вопросы