第二个 activity 不会回到第一个
Second activity won't go back to first
我运行进了一个小问题。我正在为我的 android 开发课程构建一个应用程序,我有两个活动 - MainActivity 和一个具有三个片段布局的片段 activity。当您单击 MainActivity 中的按钮并将您带到第二个片段 activity 时,我设法编写了代码。这很好用,但是当我单击后退按钮时,它会关闭应用程序而不是返回到主要 activity 布局。这是一些代码:
主要活动:
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;
}
}
片段本身还没有任何具体代码,因为我还没有进行布局。我正在使用选项卡 activity 在三个片段之间切换,我不知道 ide 为什么应用程序关闭而不是返回 MainActivity 屏幕。
您应该从 Main 中删除停止方法 Activity
您正在对您的 onStop
方法调用 finish()
,这会破坏您的启动器 activity.remove 该代码,您可以开始了。
我运行进了一个小问题。我正在为我的 android 开发课程构建一个应用程序,我有两个活动 - MainActivity 和一个具有三个片段布局的片段 activity。当您单击 MainActivity 中的按钮并将您带到第二个片段 activity 时,我设法编写了代码。这很好用,但是当我单击后退按钮时,它会关闭应用程序而不是返回到主要 activity 布局。这是一些代码:
主要活动:
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;
}
}
片段本身还没有任何具体代码,因为我还没有进行布局。我正在使用选项卡 activity 在三个片段之间切换,我不知道 ide 为什么应用程序关闭而不是返回 MainActivity 屏幕。
您应该从 Main 中删除停止方法 Activity
您正在对您的 onStop
方法调用 finish()
,这会破坏您的启动器 activity.remove 该代码,您可以开始了。