【问题标题】:How i operation on Back Button in fragment. ask for back button of hardware of phone我如何操作片段中的后退按钮。求手机硬件返回键
【发布时间】:2014-10-10 06:22:13
【问题描述】:

我想在主片段类中操作后退按钮。我在片段的帮助下使用滑动标签。所以在标准活动课程中,我知道后退按钮的功能。但这对我没有帮助。这是我的代码。我已经完成了动作栏主页功能。所以我想和后退按钮一样

               public class MainActivity extends FragmentActivity implements
    ActionBar.TabListener {

private ViewPager viewPager;
private TabsPagerAdapter mAdapter;
private ActionBar actionBar;
// Tab titles
private String[] tabs = { "Metals","Forex" };
 static int i = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Initilization
    viewPager = (ViewPager) findViewById(R.id.pager);
    actionBar = getActionBar();
    actionBar.setDisplayHomeAsUpEnabled(true);
    i=0;
    mAdapter = new TabsPagerAdapter(getSupportFragmentManager());

                viewPager.setAdapter(mAdapter);
           //       actionBar.setHomeButtonEnabled(true);
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);        

    // Adding Tabs
    for (String tab_name : tabs) {
        actionBar.addTab(actionBar.newTab().setText(tab_name)
                .setTabListener(this));
    }

    /**
     * on swiping the viewpager make respective tab selected
     * */
    viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

        @Override
        public void onPageSelected(int position) {
            // on changing the page
            // make respected tab selected
            actionBar.setSelectedNavigationItem(position);
        }

        @Override
        public void onPageScrolled(int arg0, float arg1, int arg2) {
        }

        @Override
        public void onPageScrollStateChanged(int arg0) {
        }
    });
}

@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
}

@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
    // on tab selected
    // show respected fragment view
    viewPager.setCurrentItem(tab.getPosition());
}

@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
}


@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle item selection
    switch (item.getItemId()) {

    case android.R.id.home:
        Log.d("back", "backkk");
        i = 1;
        Toast.makeText(getApplicationContext(), "back"+i,100).show();
        onBackPressed();
        return true;

    default:
        return super.onOptionsItemSelected(item);
    }
}

【问题讨论】:

  • 你只需要覆盖后退按钮,然后你可以添加任何你想要的......

标签: android tabs fragment swipe android-fragmentactivity


【解决方案1】:

我想你想在 Fragment 中按下返回键时执行一个操作

所以在片段中创建一个公共方法

并从 Fragment 活动类,覆盖 onBackkeypressed 调用该方法

例子

@Override
public void onBackPressed() {
    DetailFragment fragment = (DetailFragment) getFragmentManager()
            .findFragmentById(R.id.listfragment);
     fragment.doSomthing()

}

【讨论】:

  • 你能详细解释一下吗?我不知道片段中的任何东西。所以请告诉我如何覆盖它。
  • 你创建了 Fragment 类吗?@user3725606
  • 是的..我发布了我的整个班级。我正在创建滑动标签视图
  • 在 FragmentActivity 类中你可以覆盖 onBackPressed()
  • 但我不知道。如果你知道那么请帮助我。给我任何前任。或提供您创建的任何文件
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-25
  • 1970-01-01
  • 1970-01-01
  • 2017-01-19
  • 2019-07-28
  • 1970-01-01
相关资源
最近更新 更多