我在活动中实施了onKeyDown
来关闭活动。然后在布局中添加了一个按钮并实现了setOnClickListener
。我设法使用LayoutInflater
显示按钮单击的另一个布局。我为使用此setOnKeyListner
创建的视图实现了Inflater
作为该视图的硬件后退按钮。
但是当我在显示第二个布局时单击硬件后退按钮时,setOnKeyListner
内的内容不会执行。例如,以下显示'1'而不是'2'。可能有人显示我的错误。
提前致谢。
public class TestActivity extends Activity{
@Override
public void onCreate(Bundle savedInstanceState) {
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
LayoutInflater inflater = (LayoutInflater) getApplicationContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.layout_2, null);
addContentView(view, new ViewGroup.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
initGUI(view); //initialize layout views
view.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View dialog, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
Log.i("tag","2");
}
return true;
}
});
}
});
}
//Hardware key pressing event
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
Log.i("tag","1");
}
return super.onKeyDown(keyCode, event);
}
}
答案 0 :(得分:0)
这是
标签1
因为您的活动实例是comman。 单击按钮时,您只向此活动添加内容,但在返回时按下上下文或活动参考是comman,以便始终调用覆盖的活动方法。
只有您的内容会添加到此活动布局中,但活动的主要上下文是单一的,就会发生这种情况。