2

表示されている子が変更されたときにリスナーに起動させたいViewFlipperがあります。OnFocusChangeListenerをViewFlipperに設定しましたが、子0から子1に、またはその逆にフリップしても起動しません。ViewFlipperには2つのRelativeLayoutsが含まれており、それらにOnFocusChangeListenersを設定しようとしましたが、設定しようとするとClassCastExceptionが発生します。これが私のコードです:

RelativeLayout songsLayout = (RelativeLayout) findViewById(R.id.song_page_layout);
songsLayout.setOnFocusChangeListener(new OnFocusChangeListener() {
    public void onFocusChange(View view, boolean hasFocus) {
        showPopUp("View " + view.getId() + " now has focus: " + hasFocus);
    }       
} );

R.is.song_page_layoutは私のRelativeLayoutsの1つであり、showPopUp()はポップアップを表示するために使用する関数です。

ViewFlipperが表示される子を変更したときに起動する、ある種のトリガーの作業コードを持っている人はいますか?

4

1 に答える 1

3

Androidで「フォーカス」が何を意味するのか理解していないと思います。これは、ユーザーがそのビューを選択したときです。たとえば、EditTextを押して選択したり、キーボードを使用してボタンを選択したりします。ViewFlipperがビューを切り替えるとき、フォーカスを獲得したり失ったりすることはありません。

私の知る限り、次のいずれかを行うことができます。

  1. ViewFlipperの自動反転は使用せず、反転させたいときに手動でshowNext()を呼び出します(コードで間隔を自分で設定します)。

  2. ViewFlipperをサブクラス化または再実装し、好みに合わせて変更リスナーを追加します。

于 2010-04-20T03:45:07.250 に答える