使用LayoutInflater创建的视图的硬件后退按钮

时间:2012-11-01 10:44:02

标签: android

我在活动中实施了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);
       }
}  

1 个答案:

答案 0 :(得分:0)

这是

  

标签1

因为您的活动实例是comman。 单击按钮时,您只向此活动添加内容,但在返回时按下上下文或活动参考是comman,以便始终调用覆盖的活动方法。

只有您的内容会添加到此活动布局中,但活动的主要上下文是单一的,就会发生这种情况。