Если вкладки и действия не идут вместе ... Есть ли способ обмануть? - PullRequest
0 голосов
/ 31 июля 2010

Мне очень трудно помещать свои действия во вкладки. У меня есть действие, которое анализирует XML-файл и помещает их в список, и оно прекрасно работает само по себе. Однако, когда я вызываю его на вкладке, он не работает (я получаю страшную подсказку "Извините! Бла-бла ... неожиданно остановился" ... Кстати, я сделал манифест).

Я перенес действия на работу как одно занятие, вуаля! это сработало!!! Однако это не тот путь, которым мы хотели пойти с этим проектом - НАМ ДЕЙСТВИТЕЛЬНО НУЖНО иметь отдельные мероприятия.

Итак, как многие люди узнали, что вкладки и действия плохо работают вместе, есть ли способ обойти это? Может быть, какой-то эмульгатор?

Вот код:

импорт android.app.Activity; импорт android.content.Intent; импорт android.os.Bundle; импорт android.widget.TabHost; импорт android.widget.Toast;

открытый класс TabDemo расширяет Activity {

/** data members go here*/

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

    try {
        TabHost tabs= (TabHost)findViewById(R.id.tabhost);

        tabs.setup();
        Intent callResultHits = new Intent(this, my.tabebd.layout.ResultHits.class);

        TabHost.TabSpec spec = tabs.newTabSpec("tag1");
        spec.setContent(callResultHits);
        spec.setIndicator("Result",   getResources().getDrawable(R.drawable.ic_tab_search_result) );
        tabs.addTab(spec);

        spec = tabs.newTabSpec("tag2");
        spec.setContent(R.id.tab2);
        spec.setIndicator("Details",getResources().
                             getDrawable(R.drawable.ic_tab_details));
        tabs.addTab(spec);

        tabs.setCurrentTabByTag("tag1");
    } catch (Throwable t) {
        // TODO Auto-generated catch block
        Toast.makeText(this, "Exception: " + t.toString(), 50000).show();
    }
}

вот одно из занятий ...

public class ResultHits extends Activity implements OnItemClickListener {
ListView listView_titles;
ArrayList<String> items = new ArrayList<String>();
String [] test = {"1", "2","3"};

    @Override
    public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);



    listView_titles = (ListView)findViewById(R.id.list);

    listView_titles.setAdapter(new ArrayAdapter<String>
    (this,R.layout.row, R.id.row_text,test));


}

}

Я пропустил часть синтаксического анализа xml ... если этот основной список можно отобразить на вкладке, он будет идеальным. TY заранее

Кстати, setcurrenttabByTag был ранее установленCurrenttab (2) .. на самом деле я сделал эти значения 0,1, 2, 3 на всякий случай;)

1 Ответ

0 голосов
/ 31 июля 2010

Разместите свой код. Думаю, у вас не возникнет проблем с размещением действий на каждой вкладке, Это базовый пример того, как поместить действия во вкладки,

    static  TabHost tabHost;

...
...
...

            tabHost = getTabHost();  // The activity TabHost
           TabHost.TabSpec spec;  // Resusable TabSpec for each tab
           Intent intent;  // Reusable Intent for each tab
           // Create an Intent to launch an Activity for the tab (to be reused)
           intent = new Intent().setClass(this, MainActivity.class);
           // Initialize a TabSpec for each tab and add it to the TabHost
           spec = tabHost.newTabSpec("MainActivity")     
             .setIndicator(null, null)
               .setContent(intent);
           tabHost.addTab(spec);

           // Do the same for the other tabs
           intent = new Intent().setClass(this, SecondActivity.class);
           spec = tabHost.newTabSpec("SecondActivity")         
           .setIndicator(null, null)               
           tabHost.addTab(spec);

           intent = new Intent().setClass(this, ThirdActivity.class);
           spec = tabHost.newTabSpec("ThirdActivity")
               .setIndicator(null, null)
               .setContent(intent);
           tabHost.addTab(spec);

           intent = new Intent().setClass(this, FourthActivity.class);
           spec = tabHost.newTabSpec("FourthActivity")
               .setIndicator(null, null)
               .setContent(intent);
           tabHost.addTab(spec);
...