【发布时间】:2012-05-23 17:24:42
【问题描述】:
我的后退按钮有问题。他不工作。当我从第一个活动转到第二个,从第二个到第三个返回按钮时不想工作。我用过:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
moveTaskToBack(true);
Log.v("Co1s", "Cos1");
return true;
}
return super.onKeyDown(keyCode, event);
}
但是当我按下按钮时,我只得到:
05-23 10:45:57.863: W/KeyCharacterMap(238): 无法打开 keycharmap 文件 05-23 10:45:57.863: W/KeyCharacterMap(238): 加载 keycharmap 时出错 文件'/system/usr/keychars/pm8058-keypad.kcm.bin'。 hw.keyboards.0.devname='pm8058-keypad' 05-23 10:45:57.863: W/KeyCharacterMap(238):使用默认键盘映射: /system/usr/keychars/qwerty.kcm.bin
并且此功能中的此日志未显示在日志中。为什么?
编辑: acriivity nr1:
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.services_description);
back_button = (Button) findViewById(R.id.service_back_button);
back_button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
intent = new Intent(services_description.this, service.class);
TabActivityGroup parentActivity = (TabActivityGroup)getParent();
parentActivity.startChildActivity("menu_activity", intent);
finish();
}
});
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
Log.v("Co1s", "Cos1");
}
return super.onKeyDown(keyCode, event);
}
第二个:
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.service);
title = (TextView) findViewById(R.id.serviceTitle);
description = (TextView) findViewById(R.id.serviceDescription);
nextPage = (ImageView) findViewById(R.id.serviceNextPage);
back_button = (Button) findViewById(R.id.service_back_button);
nextPage.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
intent = new Intent(service.this, services_description.class);
TabActivityGroup parentActivity = (TabActivityGroup)getParent();
parentActivity.startChildActivity("menu_activity", intent);
}
});
back_button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
finish();
}
});
}
@Override
public void onBackPressed() {
Log.v("Cos", "Cos");
finish();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
moveTaskToBack(true);
Log.v("Co1s", "Cos1");
return true;
}
return super.onKeyDown(keyCode, event);
}
【问题讨论】:
-
您的两个中的哪个中的后退按钮不起作用?如果您的第一个活动,您都将
onClick侦听器附加到后退按钮,同时您覆盖onKeyDown。在您的第二个活动中,您覆盖了onBackPressed和onKeyDown。这一切似乎有点可疑......似乎你正在做很多不同的事情而不知道你在真正在做什么,所以我的建议:删除所有“绒毛”并从 as尽可能简单的例子。让后退按钮正常工作,然后同时开始添加一个事件处理程序以使日志记录也正常工作。
标签: android