Android TabActivity GroupActivity后退按钮不工作
tabactivity和grouptactivty中的后退按钮有问题。 我有4个标签,在一个标签里我还有3个活动。当我调用一个活动时,它是没有问题的。但如果我点击后退按钮,我的应用程序就会完全关闭 这是我的密码。我的水龙头在哪里 TabactivityAndroid TabActivity GroupActivity后退按钮不工作,android,tabactivity,android-tabactivity,Android,Tabactivity,Android Tabactivity,tabactivity和grouptactivty中的后退按钮有问题。 我有4个标签,在一个标签里我还有3个活动。当我调用一个活动时,它是没有问题的。但如果我点击后退按钮,我的应用程序就会完全关闭 这是我的密码。我的水龙头在哪里 Tabactivity public class TabbarActivity extends TabActivity { /** Called when the activity is first created. */ @Override public void
public class TabbarActivity extends TabActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tabbar);
TabHost tabHost = getTabHost();
TabHost.TabSpec spec;
Intent intent;
Resources res = getResources();
intent = new Intent().setClass(this, HauptmenuActivity.class);
spec = tabHost.newTabSpec("ReweHaupt")
.setIndicator("ReweHaupt",
res.getDrawable(R.drawable.home))
.setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, ContactGroupEinkaufliste.class);
spec = tabHost
.newTabSpec("EinkaufListe")
.setIndicator("EinkaufListe",
res.getDrawable(R.drawable.einkaufliste))
.setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, FilialesuchenActivity.class);
spec = tabHost
.newTabSpec("Filiarsuchen")
.setIndicator("Filiarsuchen",
res.getDrawable(R.drawable.searchbuton))
.setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, NotizblockActivity.class);
spec = tabHost
.newTabSpec("Einkaufzettel")
.setIndicator("Einkaufzettel",
res.getDrawable(R.drawable.einkaufliste))
.setContent(intent);
tabHost.addTab(spec);
}
ContactGroupEinkaufliste.java
public class ContactGroupEinkaufliste extends ActivityGroup {
public static ContactGroupEinkaufliste groupContact;
private ArrayList<View> history;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.history = new ArrayList<View>();
groupContact = this;
View view = getLocalActivityManager().startActivity(
"idHoraireActivity",
new Intent(this, EinkauflisteActivity.class)
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
.getDecorView();
replaceView(view);
}
public void replaceView(View v) {
history.add(v);
setContentView(v);
}
public void back() {
if(history.size() > 0) {
history.remove(history.size()-1);
setContentView(history.get(history.size()-1));
}else {
finish();
}
}
// @Override
public void onBackPressed() {
ContactGroupEinkaufliste.groupContact.back();
return;
}}
SuchenActivity.java
public class EinkauflisteActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.einkaufliste);
Button btnsenden = (Button) findViewById(R.id.btnsenden);
Button btnscaner = (Button) findViewById(R.id.btnscaner);
Button btnsuchen = (Button) findViewById(R.id.btnsuchen);
// wenn wir button clicken, rufen wir neu activity
btnsuchen.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
View view = ContactGroupEinkaufliste.groupContact
.getLocalActivityManager()
.startActivity(
"suchenactivity",
new Intent(v.getContext(), SuchenActivity.class)
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
.getDecorView();
ContactGroupEinkaufliste.groupContact.replaceView(view);
}
});
}}
public class SuchenActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.suchen);
}}
谢谢是的,您需要手动处理back按键事件。这里描述了这种技术:
当点击“后退”按钮时,您希望看到什么?默认操作是转到上一个活动。您将TabActivity作为主-因此退出TabActivity。如果您想更改默认操作,只需覆盖TabActivity中的onBackPressed。但是要小心-更改默认操作通常不利于用户体验。在您的活动中尝试此操作
@Override
public void onBackPressed()
{
// TODO Auto-generated method stub
Activity act = getCurrentActivity();
act.onBackPressed();
// super.onBackPressed();
}
我发现在TabActivity中不可能覆盖后退按钮操作。 您应该在托管活动中执行此操作
@Override
public void onBackPressed() {
Log.i("Kishu","[onBackPressed()] pressed");
getParent().moveTaskToBack(true);
return;
}
在本例中,按“后退”按钮将使您的应用程序后退。默认行为将关闭它
注意:您应该放回选项卡activity,而不是hosted activity。抱歉,我没有找到。这到底在哪里?你是说?我可以用tabbaractivity在Backpressed上写吗?