0

我已经搜索了很长时间,发现人们处理从对象中删除单个且通常是特定选项卡的几种不同方式TabHost。如果可以的话,我想尝试收集所有这些方法来解决这个问题,以便人们“购买”他们需要的正确方法,并希望得到他们编写代码所需的答案;我也觉得它会减少这些问题的数量。

目前我也很难找到我的代码的解决方案。我试图在不触及其他选项卡的情况下摆脱特定选项卡;希望我也能找到我的答案。

我暂时不会为这个问题选择一个特定的答案,所以请在这里列出你用来处理这个问题的方法,以供其他人查看。

谢谢你。

更新:

好的,这是我当前的代码:

TabHost mTabHost;
TabHost.TabSpec spec;
Intent mSettingsIntent;
Intent mSearchIntent;
int tabNum = 1;


/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    mSearchIntent = new Intent().setClass(this, SearchTab.class);
    mTabHost = getTabHost();
    mTabHost.getTabWidget().setDividerDrawable(R.drawable.tab_divider);

    makeTab("Tab");


    final Button newSearchBtn = (Button) findViewById(R.id.new_search_btn);
    newSearchBtn.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            // Perform action on clicks
            EditText searchBar = (EditText) findViewById(R.id.search_bar);
            final String searchString = searchBar.getText().toString();
            makeTab(searchString);

        }
    });
    final EditText edittext = (EditText) findViewById(R.id.search_bar);
    edittext.setOnKeyListener(new OnKeyListener() {
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            // If the event is a key-down event on the "enter" button
            if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
                (keyCode == KeyEvent.KEYCODE_ENTER)) {
              // Perform action on key press
                EditText searchBar = (EditText) findViewById(R.id.search_bar);
                final String searchString = searchBar.getText().toString();
                makeTab(searchString);
              return true;
            }
            return false;
        }
    });


}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
     MenuInflater inflater = getMenuInflater();
     inflater.inflate(R.menu.tab_menu, menu);
     return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle item selection
    switch (item.getItemId()) {
    case R.id.menu_close:
        // TODO: Find/define method to close a single tab
        closeTab();
        return true;
    case R.id.menu_settings:
        // TODO: Create a basic Settings Activity and call constructor here
        return true;
    default:
        return super.onOptionsItemSelected(item);
    }
}

public void makeTab(String tabText) {
    String tabTag = "Tab" + tabNum++;
    View tabview = createTabView(mTabHost.getContext(), tabText);
    spec = mTabHost.newTabSpec(tabTag).setIndicator(tabview).setContent(new Intent().setClass(this, SearchTab.class));
    mTabHost.addTab(spec);
    mTabHost.setCurrentTabByTag(tabTag);
}

private void closeTab() {
    // TODO: Define method for closing a single tab with tabTag
    mTabHost.removeViewAt(mTabHost.getCurrentTab());
}

private static View createTabView(final Context context, final String text) {
        View view = LayoutInflater.from(context).inflate(R.layout.tabs_bg, null);
        TextView tv = (TextView) view.findViewById(R.id.tabsText);
        tv.setText(text);
        return view;
    }

}

NullPointer Exception 我的应用程序由于我不知道为什么而被锁定;我仍在试图弄清楚如何阅读 Eclispe 中的调试器透视图以获取线索。当我有更多时,我会更新。

4

0 回答 0