2

これは簡単な質問のように見えますが、知りたいだけです。

削除する必要がありますonClickListenerか、または私の場合はTabListener、アクティビティが破棄または一時停止されたときですか?

たとえば、ここに私のコードがあります:

package code.tabnav;

import adapter.SectionsPagerAdapter;
import android.app.ActionBar;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;

import com.example.tabnav.R;

public class Home extends FragmentActivity {

private ViewPager mViewPager;
private SectionsPagerAdapter mSectionsPagerAdapter;
private ActionBar.TabListener tabListener;

@Override
protected void onCreate(Bundle savedInstanceState) {

    /* On Create method */

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);
    mViewPager = (ViewPager) findViewById(R.id.pager);
    mSectionsPagerAdapter = new SectionsPagerAdapter(
            getSupportFragmentManager(), this);
    mViewPager.setAdapter(mSectionsPagerAdapter);
    mViewPager.setOffscreenPageLimit(1);

    mViewPager
            .setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
                @Override
                public void onPageSelected(int position) {
                    getActionBar().setSelectedNavigationItem(position);
                }
            });

    getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    tabListener = new ActionBar.TabListener() {
        public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
            mViewPager.setCurrentItem(tab.getPosition());
        }

        public void onTabUnselected(ActionBar.Tab tab,
                FragmentTransaction ft) {
        }

        public void onTabReselected(ActionBar.Tab tab,
                FragmentTransaction ft) {
        }
    };
    addNewTab("Home", tabListener);
    addNewTab("Latest", tabListener);
    addNewTab("Find", tabListener);
    addNewTab("Download", tabListener);
}

private final void addNewTab(String name, ActionBar.TabListener tabListener) {
    getActionBar().addTab(
            getActionBar().newTab().setText(name)
                    .setTabListener(tabListener));
}

}

どんな情報でも大歓迎です、ありがとう!

4

2 に答える 2

3

リスナーを削除する必要はありません。これは単なるオブジェクトであり、参照されなくなった場合はガベージ コレクションする必要があります。問題が発生していますか?

于 2013-09-27T02:09:19.953 に答える