2013-06-19 38 views
1

我有我的應用程序中實現這個非常簡單的代碼:onTouchEvent未調用PreferenceActivity - 爲什麼?

public class EditPreferences extends PreferenceActivity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    Log.v(TAG, "onCreate"); 
    } 


    @Override 
    public boolean onTouchEvent(MotionEvent me) { 
    Log.v(TAG, "onTouchEvent"); 
    return false; 
    } 

} 

當偏好屏幕/活動顯示了,我希望看到「的onTouchEvent」日誌消息時,我在該屏幕上碰任何東西。

但我沒有收到任何消息。這告訴我,onTouchEvent甚至沒有被調用。

(我可以看到 「的onCreate」 消息,雖然當然。)

爲什麼不PreferenceActivity的的onTouchEvent()叫什麼名字?

它可能被應用程序中某個其他組件攔截了嗎?

或者我在實施步驟中遺漏了一些東西?

+0

你好,只是注意到你沒有在我們的覆蓋中調用'''super()。onTouchEvent()''''。解決這個問題,再去一次。 – OceanLife

回答

6

那是因爲,你真的碰到一個ListView默認情況下是由PreferenceActivity實現,需要調用onTouch你的ListView代替,檢查下面的代碼:

getListView().setOnTouchListener(new OnTouchListener() { 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     Toast.makeText(getApplicationContext(), "touched", Toast.LENGTH_SHORT).show(); 
     return false; 
    } 
}); 
onCreate方法

GOOD LUCK。

+0

你是一個天才。謝謝! – ih8ie8

+0

歡迎:) –

相關問題