【问题标题】:Second activity won't go back to first第二个活动不会回到第一个
【发布时间】:2017-12-24 12:56:18
【问题描述】:

我遇到了一个小问题。我正在为我的 android 开发课程构建一个应用程序,我有两个活动 - MainActivity 和一个具有三个片段布局的片段活动。当您单击 MainActivity 中的按钮并将您带到第二个片段活动时,我设法编写了代码。这很好用,但是当我单击后退按钮时,它会关闭应用程序而不是返回到主要活动布局。这是一些代码:

主活动:

public class MainActivity extends AppCompatActivity {


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

    ButterKnife.bind(this);
    getSecondAct();

}

public void getSecondAct(){
    Button btnstart = (Button) findViewById(R.id.btnfragments);
    btnstart.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent1 = new Intent(MainActivity.this, 
FragmentsActivity.class);
            startActivity(intent1);
        }
    });
}

@Override
protected void onStop() {
    super.onStop();
    Toast.makeText(this, "Thank you for using this app! :)", 
    Toast.LENGTH_SHORT).show();
    finish();
    } 
}

片段活动:

public class FragmentsActivity extends AppCompatActivity {

private FragmentsAdapter mSectionsPagerAdapter;


private ViewPager mViewPager;

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

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    mSectionsPagerAdapter = new FragmentsAdapter(getSupportFragmentManager());


    mViewPager = (ViewPager) findViewById(R.id.container);
    mViewPager.setAdapter(mSectionsPagerAdapter);

    TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);

    mViewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
    tabLayout.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(mViewPager));



}


@Override
public boolean onCreateOptionsMenu(Menu menu) {

    getMenuInflater().inflate(R.menu.menu_fragments, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    int id = item.getItemId();


    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}
}

片段适配器:

public class FragmentsAdapter extends FragmentPagerAdapter {

public FragmentsAdapter(FragmentManager fm) {
    super(fm);
}

@Override
public Fragment getItem(int position) {
    if (position == 0) {    //position ide od nule!
        return RollDiceFragment.newInstance();
    } else if (position == 1) {
        return FAEFragment.newInstance();
    } else if (position == 2) {
        return FateCoreFragment.newInstance();
    } else {
        return null;
    }
}

@Override
public int getCount() {
    return 3;
}
}

片段本身还没有任何特定的代码,因为我还没有进入布局。我正在使用选项卡式活动在三个片段之间切换,但我不知道为什么应用程序关闭而不是返回到 MainActivity 屏幕。

【问题讨论】:

    标签: java android android-fragments android-intent android-fragmentactivity


    【解决方案1】:

    您在 onStop 方法上调用 finish(),这会破坏您的启动器活动。删除该代码,您就可以开始了。

    【讨论】:

      【解决方案2】:

      你应该从 Main Activity 中删除 stop 方法

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-21
        • 1970-01-01
        • 2023-04-02
        • 1970-01-01
        相关资源
        最近更新 更多