2012-07-11 43 views
1

首先,我不得不說,我一直在研究這個問題,但沒有找到答案...爲什麼這個TextView的文本沒有改變?

我有一個TextView,所以我想要做的就是改變它的文本與任何硬件按鍵的鍵碼(是的,我知道一些按鍵不能使用)...問題是,文字試圖改變...任何人都請幫我解決這個問題。

非常感謝!

代碼:

import android.app.Activity; 
import android.os.Bundle; 
import android.view.KeyEvent; 
import android.view.View; 
import android.view.View.OnKeyListener; 
import android.widget.TextView; 



public class keycodelistener extends Activity { 

    private TextView txtcode; 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState);  
     setContentView(R.layout.keycodedialog); 

     txtcode = (TextView)findViewById(R.id.keypresstext); 

    } 

    public boolean onKeyDown(View v, int keyCode, KeyEvent event) { 
     txtcode.setText(String.valueOf(keyCode)); 
     return super.onKeyDown(keyCode, event); 
    } 
} 

最後,與此感謝@CFlex工作!最後三人行必有:

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    //Log.e("","yeeeahhhh"); 
    txtcode.setText(String.valueOf(keyCode)); 
    return true; 

} 
+2

你是否檢查過onKeyDown被解僱? – 2012-07-11 13:47:36

+0

對不起,但我怎麼能這樣做? – BamsBamx 2012-07-11 13:48:42

+0

@BamsBamx使用Log.d(String tag,String msg)。然後檢查你的logcat。 – 2012-07-11 13:49:17

回答

8

你需要重寫onKeyDown(keyCode, event)因爲onKeyDown(View v, int keyCode, KeyEvent event)不存在。 Doc here

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    /* do what you want */ 
} 

希望這是有幫助的。

+4

這就是爲什麼我經常發現將@覆蓋註釋放在任何我認爲是我重寫的方法上方是有用的,我的IDE會告訴我,如果我試圖覆蓋不存在的東西 – 2012-07-11 13:55:03

+0

是的,@Override可以真正地製造或打破這一天:) – ninetwozero 2012-07-11 13:55:42

+0

這是錯誤的,必須返回一些東西...是否可以返回?:return super.onKeyDown(keyCode,event); – BamsBamx 2012-07-11 13:56:10

相關問題