onKeyDown
アクティビティを閉じるためにアクティビティに実装しました。次に、レイアウトにボタンを追加して実装しsetOnClickListener
ました。を使用してボタン クリック用の別のレイアウトを表示することができました。そのビューのハードウェアの戻るボタン用に、これを使用して作成されたビューにLayoutInflater
実装しました。setOnKeyListner
Inflater
しかし、2 番目のレイアウトを表示しているときにハードウェアの [戻る] ボタンをクリックすると、内部のsetOnKeyListner
処理が実行されません。たとえば、次の例では「2」ではなく「1」が表示されます。誰かが私の間違いを示すことができますか?
前もって感謝します。
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);
}
}