2013-02-27 87 views
1

我有這樣的佈局Android的返回鍵循環的焦點,而不是返回到先前的活動

enter image description here

兩個搜索查看部件
一個ListView控件

當我按下的機器人返回鍵焦點週期過濾器框和搜索框。
我想回到之前的活動,但我不能這樣做,因爲後退鍵只能從一個框到另一個框。
我怎樣才能獲得後退按鍵事件?

這段代碼甚至不被調用

@Override 
public void onBackPressed() { 
    setResult(Activity.RESULT_CANCELED); 
    super.onBackPressed(); 
} 

回答

1

問題是肯定與SearchView小部件和它的處理焦點/ backkey。
我將SearchViews更改爲EditTexts
我將QueryTextListeners更改爲TextWatchers
和...瞧!

現在調用onBackPressed(),並且活動可以返回到其先前的調用者。

enter image description here

+0

不要忘記接受你自己的答案:) – RvdK 2013-02-27 13:13:46

0

您可以覆蓋活動的onBackPressed()方法來做你想做什麼工作做壓喜歡

返回鍵,你可以調用返回鍵之前的活動按...像,

@override 
public void onBackPressed() 
{ 
    Intent intent = new Intent(CurrentActivity.this, PreviousActivity.class); 
    startActivity(intent); 
    finish(); 

} 
+1

onBackPressed永遠不會被調用。 – ilomambo 2013-02-27 12:31:30

0

我總是有onBackPressed麻煩。您應該嘗試使用onKeyDownonKeyUp

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { 
     // do something on back. 
     return true; 
    } 

    return super.onKeyDown(keyCode, event); 
} 
+0

試過了,onKeyDown沒有被調用,onKeyUp沒有被調用。 :::如果我不得不猜測它好像SearchView小部件竊取焦點並且不打擾他們的超級例程。 – ilomambo 2013-02-27 12:42:44

+0

您是否嘗試過dispatchKey ...我認爲在將它發送給孩子之前會調用它。 – RvdK 2013-02-27 12:52:00

+0

@是的,我試過了:::問題是肯定與SearchView小部件,我改變爲EditText和TextWatchers – ilomambo 2013-02-27 12:55:15