Java 从片段移回上一个活动
我有一个片段活动,当用户按下后退按钮时,它关闭应用程序 为了尝试解决此问题,我已尝试:Java 从片段移回上一个活动,java,android,android-layout,android-activity,android-fragments,Java,Android,Android Layout,Android Activity,Android Fragments,我有一个片段活动,当用户按下后退按钮时,它关闭应用程序 为了尝试解决此问题,我已尝试: @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { onBackPressed(); } return super.onKeyDown(keyCode, event); } @Override public void onBackPres
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
onBackPressed();
}
return super.onKeyDown(keyCode, event);
}
@Override
public void onBackPressed() {
Log.d("CDA", "onBackPressed Called");
Intent intent = new Intent(this, betaEventsActivity.class);
startActivity(intent);
}
问题是,这并不奏效。它只将用户带到指定的活动,而不一定返回到上一个活动
我也尝试过:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);//***Change Here***
startActivity(intent);
finish();
System.exit(0);
}
return super.onKeyDown(keyCode, event);
}
但这只是关闭应用程序
以下是我的碎片活动代码:
public class usermatch extends FragmentActivity {
private PageAdapter mPagerAdapter;
private FeedbackDialog feedBack;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.viewpager_layout);
initialisePaging();
feedBack = new FeedbackDialog(this, "id");
}
private void initialisePaging() {
// TODO Auto-generated method stub
List<Fragment> fragments = new Vector<Fragment>();
fragments.add(Fragment.instantiate(this, Fragment1.class.getName()));
fragments.add(Fragment.instantiate(this, Fragment2.class.getName()));
fragments.add(Fragment.instantiate(this, Fragment3.class.getName()));
fragments.add(Fragment.instantiate(this, Fragment4.class.getName()));
fragments.add(Fragment.instantiate(this, Fragment5.class.getName()));
mPagerAdapter = new PageAdapter(this.getSupportFragmentManager(), fragments);
ViewPager pager = (ViewPager) findViewById(R.id.viewpager);
pager.setAdapter(mPagerAdapter);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);//***Change Here***
startActivity(intent);
finish();
System.exit(0);
}
return super.onKeyDown(keyCode, event);
}
public类usermatch扩展了碎片活动{
专用页面适配器;
私人反馈对话反馈;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.viewpager\u布局);
初始化分页();
反馈=新反馈对话框(此“id”);
}
私有void initialisePaging(){
//TODO自动生成的方法存根
列表片段=新向量();
add(Fragment.instantiate(这是Fragment1.class.getName());
add(Fragment.instantiate(这是Fragment2.class.getName());
add(Fragment.instantiate(这是Fragment3.class.getName());
add(Fragment.instantiate(这是Fragment4.class.getName());
add(Fragment.instantiate(这是Fragment5.class.getName());
mPagerAdapter=新的页面适配器(this.getSupportFragmentManager(),fragments);
ViewPager pager=(ViewPager)findViewById(R.id.ViewPager);
寻呼机设置适配器(mPagerAdapter);
}
@凌驾
公共布尔onKeyDown(int-keyCode,KeyEvent事件){
if(keyCode==KeyEvent.keyCode\u BACK){
意向意向=新意向(意向.行动\主要);
intent.addCategory(intent.CATEGORY_HOME);
intent.setFlags(intent.FLAG_ACTIVITY_CLEAR_TOP);//***在此处更改***
星触觉(意向);
完成();
系统出口(0);
}
返回super.onKeyDown(keyCode,event);
}
任何帮助都将不胜感激。尝试使用Overriding onBackPressed()。Override onBackPressed方法并将寻呼机设置为上一项,如下所示:
@Override
public void onBackPressed() {
if (pager.getCurrentItem() == 0) {
// If the user is currently looking at the first step, allow the
// system to handle the Back button.
// This calls finish() on this activity and pops the back stack.
super.onBackPressed();
} else {
// Otherwise, select the previous step.
pager.setCurrentItem(mPager.getCurrentItem() - 1);
}
}
请发布您尝试返回到的活动的代码。另外,您是否打开了您尝试返回到的活动中的片段活动?感谢您的快速响应。问题是用户可以从各种活动中获取此片段活动,因此我不能将其重定向到特定活动,只需将其移回e最后一个已知位置谢谢你的建议。不幸的是,这并不能解决问题。