问题使用tab-host android?

时间:2012-02-17 06:34:17

标签: android android-tabhost

伙计们我正面临着与Tab-host不同的问题,我会清楚地解释一下步骤。

1.我正在显示带有6个标签的标签主机。

2.单击第六个选项卡,我显示弹出窗口,其中包含Buttons.Until这里的每件事都对我很好。

3.在弹出窗口中单击按钮。我需要显示另一个活动,但tab-host应该在每个屏幕的底部?

用于显示tab-host& popup我正在使用以下代码。

private void setuptabs(){

    // Adding the tabs to TabHost.
    addTab("Balances", R.drawable.tab_search, BalancesActivity.class);
    addTab("Orders", R.drawable.tab_search, OrdersActivity.class);
    addTab("positions", R.drawable.tab_search, PositionsActivity.class);
    addTab("Trade", R.drawable.tab_search, TradeActivity.class);
    addTab("WatchList", R.drawable.tab_search, WatchlistActivity.class);
    addTab("Chains", R.drawable.tab_search, ChainsActivity.class);
    addTab("More", R.drawable.tab_search, MoreActivity.class);



    tabHost.getTabWidget().getChildAt(6).setOnTouchListener(new OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            QuickActionView qa = QuickActionView.Builder(v);

            // set the adapter
            qa.setAdapter(new CustomAdapter(getApplicationContext()));

            // set the number of columns ( setting -1 for auto )
            qa.setNumColumns(1);
            qa.setOnClickListener(new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();
                    Toast.makeText(getBaseContext(), "Selected item: " + which,Toast.LENGTH_SHORT).show();
                    switch (which) {
                    case 0:

                        break;
                    case 1:
                        break;

                    default:
                        break;
                    }
                }
            });

            // finally show the view
            qa.show();
            return false;
        }
    });
}



private void addTab(String labelId, int drawableId, Class<?> c) {

    tabHost = getTabHost();
    intent = new Intent(this, c);
    spec = tabHost.newTabSpec("tab" + labelId);

    View tabIndicator = LayoutInflater.from(this).inflate(R.layout.tab_indicator, getTabWidget(), false);
    // txtTitle will set the title in TabHost.
    txtTitle = (TextView) tabIndicator.findViewById(R.id.txtTitles);
    txtTitle.setText(labelId);
    // imgTab will set the image in TabHost.
    imgTab = (ImageView) tabIndicator.findViewById(R.id.imgTab);
    imgTab.setImageResource(drawableId);

    spec.setIndicator(tabIndicator);
    spec.setContent(intent);
    tabHost.addTab(spec);

    //      tabHost.getTabWidget().getChildAt(7).setVisibility(View.GONE);

    System.out.println("Checking tabhost value::>"+tabHost.getChildCount());


}

请大家,我怎么能做到这一点......

2 个答案:

答案 0 :(得分:0)

就像你从标签点击中调用第一个活动一样。第一个活动有弹出窗口。现在点击弹出窗口的按钮,你正在调用第二个活动吧? 是不是你必须在那个特定标签中拥有所有活动。为此,请点击此链接:THIS LINK

答案 1 :(得分:0)

对于我的应用程序,我已经遇到了这个问题。在我的应用程序中,我的listview包含一些项目。当我按下该项目的任何一个时,将显示另一个布局的详细视图。并且,我已经使用此代码执行此操作 -

ListView list = (ListView)findViewById(R.id.listview12);
        list.setAdapter(adapter);

        list.setOnItemClickListener(new OnItemClickListener()
        {
            @SuppressWarnings("unchecked")
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) 
            {
                HashMap<String, String> hashMap = new HashMap<String, String>();
                hashMap = (HashMap<String, String>) parent.getItemAtPosition(position);
                String newsid = hashMap.get("id");
                int integerid = Integer.parseInt(newsid);
                description(integerid);

                //Get the new Activity to tab.
                Intent previewMessage = new Intent(getParent(), detailedview.class);
                TabGroupActivity parentActivity = (TabGroupActivity)getParent();
                parentActivity.startChildActivity("detailedview", previewMessage);
            }
        });

我只是按照这些代码完成了我的问题Multiple Android Activities in a TabActivity。它提供了Parent&amp; Child方法。它对我非常有用。而且,它对你也很有用。试试吧......!希望这可以帮助你..: - )