私は一番上にメニュー付きのグリッドビューを表示する単純なアプリケーションを作成しています。クリックされたメニューボタンの1つは、そのすぐ下のビューにシークバーを配置します。グリッドビュー内のアイテムのサイズを変更するには、スライダを移動します。私はその部分をうまく処理することができます、問題はseekbarを取り除こうとするときに来ます。シークバーがフォーカスを失ったときを知る方法が必要です。私はsetOnFocusChangeListenerを使ってみましたが、決して呼び出されないようです。コードの一部は、すべてが、私はシークバーはまだ表示されているリストをスクロールするときを除いて動作します アンドロイドSeekBar - フォーカスを削除すると失われました
public class MainActivity extends Activity implements OnFocusChangeListener {
SeekBar seek;
public boolean onOptionItemSelected(MenuItem item) {
if(item.getId() == R.id.menu_grid_size)
{
if(seek != null) {
seek = new SeekBar(this);
seek.setOnFocusChangeListener(this);
...
layout.addView(seek, layoutparams);
} else {
layout.removeView(seek);
seek = null;
}
}
}
public void onFocusChange(Viewv, boolean hasFocus) {
layout.removeView(seek);
}
}
を下回っています。たぶんこれは、私が欲しいものをするための最良の方法ではない、どんな助けも大いに感謝されるだろう。
EDIT:上記のコードを修正して、ボタンを2回クリックするとエラーが発生するのを修正しました。