2012-01-02 6 views
1

このような方法をonKeyDownメソッドオーバーライドするために、リストビューウィジェットを拡張しよう-I:リストビューを拡張するには?

public class MyListView extends ListView { 

    public MyListView(Context context) { 
     super(context); 
     // TODO Auto-generated constructor stub 
    } 

    @Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
     // TODO Auto-generated method stub 
     return super.onKeyDown(keyCode, event); 

     // My instructions 
    } 
} 

私のxmlファイル-in:私の活動-In

<com.test.two.MyListView android:layout_width="150dp" 
    android:layout_height="match_parent" android:id="@+id/lv" 

MyListView lv = (MyListView) findViewById(R.id.lv); 

これは機能しませんが、リストビューウィジェットを拡張する正しい方法は何ですか、ありがとう。

+0

アーカイブしようとしていることを説明できますか? – Flo

+0

onKeyDownまたはListViewではどちらが動作していませんか?なぜListViewを拡張したいのですか?実際の要件は何ですか? –

答えて

1

明らかに、メソッドのreturn文の下にコードを配置しようとしているかもしれません。 あなたがしようとしていることに応じて、コードを上に置くか、後でスーパーコールの値を返すことができます。

public class MyListView extends ListView implements View.OnKeyListener 

、あなたのリストビューのonKeyリスナーとして登録する必要があります:

2

カスタムリストビューはView.OnKeyListenerを実装する必要がありますそれはまたonKeyイベントを受け取るために、フォーカスを持っている必要があり

lv.setOnKeyListener(this) 

lv.setFocusableInTouchMode(True); 
lv.requestFocus(); 

最後に、keyD以外のキーイベントを受け取る必要がある場合Androidシステムがキーイベントを処理しないようにするには、onKey()からtrueを返す必要があります。

関連する問題