2013-05-29 3 views
-1

У меня есть виджет tabHost с динамически создаваемыми вкладками. На каждой вновь созданной вкладке имеется относительный макет с некоторыми видами (textView, listView и т. Д.).Как получить доступ к представлениям по id из tabHost?

Мой вопрос: как получить доступ к этим представлениям и как добавить сюда новый контент? Я попытался установить идентификаторы или теги, но я не работал.

public class Main extends Activity { 

    @Override 
    public void onCreate(Bundle icicle) { 
     super.onCreate(icicle); 
     setContentView(R.layout.main); 

     final TabHost tabs=(TabHost)findViewById(R.id.tabhost); 
     tabs.setup(); 
     TabHost.TabSpec spec=tabs.newTabSpec("buttontab"); 
     spec.setContent(R.id.form); 
     spec.setIndicator("Search-form"); 
     tabs.addTab(spec); 

     Button btn=(Button)tabs.getCurrentView().findViewById(R.id.buttontab); 

     btn.setOnClickListener(new View.OnClickListener() { 



      public void onClick(View view) { 
       final TabHost.TabSpec spec=tabs.newTabSpec("tag1");   
       spec.setContent(new TabHost.TabContentFactory() { 
       public View createTabContent(String tag) 
       { 
        // Creating a new RelativeLayout 
       RelativeLayout relativeLayout = new RelativeLayout(Main.this); 
        // Defining the RelativeLayout layout parameters. 
        RelativeLayout.LayoutParams rlp = new RelativeLayout.LayoutParams(
          RelativeLayout.LayoutParams.FILL_PARENT, 
          RelativeLayout.LayoutParams.FILL_PARENT); 


          TextView t = new TextView(Main.this); 
          // t.setId(12); //This dosen't work 
          t.setText("Searching in progress. Please wait..."); 

          ListView resultsList = new ListView(Main.this); 
          //Here: array adapter etc 

          // Adding the TextView to the RelativeLayout as a child 
          relativeLayout.addView(t); 
          relativeLayout.addView(resultsList); 

          return relativeLayout; 

         } 
        }); 
        spec.setIndicator("Tab with results"); 
        tabs.addTab(spec); 
        new GetData(Main.this).execute();  
       } 
      }); 
    } 



    public void appendResultsToViews(String result) 
    { 
      //Here i need to access TextView from tab with specific tag and append results to TextView, which was created dynamically earlier 
    } 

Благодарим за помощь.

ответ

0

набор тегов зрения ребенка и использовать findViewWithTag(tag)

+0

Я пытался, но это не сработало. Ошибка приложения. –

+0

можете ли вы подключить трассировку стека? –

+0

05-29 05: 53: 09.011: E/AndroidRuntime (2714): FATAL EXCEPTION: main 05-29 05: 53: 09.011: E/AndroidRuntime (2714): \t at org.miasta.wyszukiwarkapb.Main.appendResultsToViews (Main.java:111) 05-29 05: 53: 09,011: Е/AndroidRuntime (2714): \t на org.miasta.wyszukiwarkapb.Obliczenia.onProgressUpdate (GetData.java:98) 05-29 05: 53: 09.011: E/AndroidRuntime (2714): \t at org.miasta.wyszukiwarkapb.GetData.onProgressUpdate (GetData.java:1) 05-29 05: 53: 09.011: E/AndroidRuntime (2714): \t на android .os.AsyncTask $ InternalHandler.handleMessage (AsyncTask.java:432) –

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