ActionBar ハンズオンの課題
教材研究という微妙な名目で弄ってみました。2.5 節の ActionView で背景色を変える、の項で微妙な不具合に遭遇。
以下な private メソドを追加する旨の記述があるんですが
private void setBgColorOnMenuClick(final MenuItem item, int id, final int color) { View actionView = item.getActionView(); actionView.findViewById(id).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { mCanvas.setBackgroundColor(color); item.collapseActionView(); } }); }
setOnClickListener メソドに渡す引数な記述が上記だとエラーになる。手元の環境だと以下な記述で不具合が回避できたのですがこれって手元の環境が微妙なのかなぁ。
actionView.findViewById(id).setOnClickListener(new View.OnClickListener() {
しかもエミュレータで動作の確認してるのですが wvga800 な仮想デバイスだとアイコンが全部表示されぬ、というアレな不具合が出てたりして。
ありゃ、でも ifRoom を showAsAction 属性に指定しとるから、ということか。あれ、でも表示領域が確保できない場合はオーバーフローメニュに云々、とありますね。エミュレータが、というか端末自体がヘボいからなぁ。うぶんつな端末で試してみるべきかどうなのか。
うぶんつで確認
無問題。やはり適当に作った windows な端末の環境が微妙らしい。windows 環境ではやはりオーバーフローメニュは、と思ったら menu ボタンを押したら下に「消去」なボタンが出てきました。むむ。
というかこの挙動はうぶんつでも同様でしたね。ちょっといやはや的。