Ask questions, find answers and collaborate at work with Stack Overflow for Teams. Explore Teams Create a free Team
![How to stop EditText from gaining focus when an activity starts in Android?](https://cdn-ak-scissors.b.st-hatena.com/image/square/98d6f053a97a87156775f60757c60865d0f2c47d/height=288;version=1;width=512/https%3A%2F%2Fcdn.sstatic.net%2FSites%2Fstackoverflow%2FImg%2Fapple-touch-icon%402.png%3Fv%3D73d79a89bded)
今回はカスタマイズした ListView に CheckBox を乗せたときの on/off 切替を行選択時に行う方法の紹介。 ListView(の項目)にCheckBoxを乗せた場合、CheckBoxのon/off切替はCheckBoxをクリックした時だけになります。 しかもCheckBoxが項目のフォーカスを奪ってしまっているため、onItemClickイベントが発生しなくなっています。 そこで、CheckBoxが項目から奪っているフォーカスを項目にお返しし、onItemClickイベントでCheckBoxの on/off を切り替えるようにします。 これはレイアウトの <CheckBox> に以下の2つの属性を追加することで対応できます。 android:clickable="false" CheckBoxにフォーカスを当たらなくし、onItemClickイベントを発生するようにしま
I've got a custom LinearLayout with a smaller TextView child. I'd like to be able to click the area not covered by the TextView, so I set clickable=true and an onclicklistener to the LinearLayout, but onClick is not triggered. If I set the onclick listener on the TextView it works as expected... Anybody can help? ar_item.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http:
androidで厄介なレイアウト回り、onMeasureとonLayoutを理解し、オーバーライドするとより理想のレイアウトに近づけます。 結構挙動が難しいので、長くなってしまいますがこれらの概要です。 (※おおざっぱな流れで細かい部分は違いますが、イメージはつかめると思います) そもそもこの2つは? AndroidではView生成時や、Viewの内容が更新される(TextView#setText()等)で、 View自体の再レイアウトが必要なときに2つが呼び出されます。 以下のようなイメージです。 親ViewのonMeasureが呼び出される 親Viewが子Viewのmeasureを呼び、幅高さを計測させる (2)の情報をもとに、親Viewが自分自身の幅高さを設定する 親ViewのonLayoutが呼び出される 親Viewが子Viewのlayoutを呼び、子Viewの場所を確定させる こ
ふとFoursquareアプリのLicense表示を見たら便利そうなライブラリを発見して便利だったので紹介。 MergeAdapterとは MergeAdapterは、google groupsとかstackoverflowでAndroidの問題を探しているとかなりの頻度で目にするMark Murphy(@commonsguy) さんが作成した便利なAdapterです。 MergeAdapter accepts a mix of Adapters and Views and presents them as one contiguous whole to whatever ListView it is poured into. This is good for cases where you have multiple data sources, or if you have a hand
photo by wiccked こんにちは。はてな デザインチームの id:ueday です。 先日、はてなでは品川の日本マイクロソフトで「はてな エンジニアブロガー祭り」を開催しました。 そこで発表された、はてな アプリケーションエンジニアの id:hitode909 による 「高速にドッグフードを食べる方法」 のスライドが SpeakerDeck に公開されています。もうご覧になりましたか? 高速にドッグフードを食べる方法 - Speaker Deck 高速にドッグフードを食べる方法 - hitode909の日記 はてなブログチームでは高速にドッグフードを食べながら開発していますが、この記事では 「エンジニアと一緒に高速にドッグフードを食べるデザイナー」 という視点から、はてなブログ開発の様子をご紹介します。 高速にドッグフードを食べるメリット 「ドッグフードを食べる」とは、実際にド
概要 こんな感じでswipeで消えるリストを作る 詳細 まずは画面を構成するcardViewとRecyclerViewを使えるように、RecylerViewを内包したbrnunes:swipeablerecyclerviewをgradleに記述する dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.github.brnunes:swipeablerecyclerview:1.0.0' compile "com.android.support:cardview-v7:+" }cardView, RecyclerViewはlollipopから採用されたwidgetなので詳しくはここら辺を見る CardView | Android Developers RecyclerView | Andr
※2016/07/16 追記: これもう大分古いのでこれからAndroidやるなら最初からRecyclerViewからやったらいいんじゃないでしょーか Lollipop周りについてあんまり興味が湧かないと思いつつも触らないわけにもいかないしな、という感じでボチボチRecyclerViewやCardViewを触っていたわけですが、RecyclerViewの違和感がすごかったので色々考えた結果「RecyclerViewはListViewの代替ではないよね」って事に気づきました。新しいListViewだと思ってたのがいけなかったんですね。とりあえず色々考えた結論について以下に列挙します。 結論 RecyclerViewはListViewの代替ではない RecyclerViewはListViewの様な「沢山の子Viewの部分セットをrecycleしながら表示するView」という機能を分解したクラス
独自のViewを作るときに困ったことがたくさんあったので、まとめておこうと思います。 (ところで独自Viewのことは何て呼ぶんでしょうか? Custom View? Custom Component? Custom Widget?) コンストラクタの作りかた Viewにはコンストラクタが3種類存在します。(この辺を見るとわかります) 基本的に全部オーバーライドしておけば問題ありませんでした。 <追記 2016/01/19> API Level 21 からコンストラクタが4種類に増えたようです。 引数が4つのコンストラクタを Lolipop 未満のOSから呼び出すと InvocationTargetException を起こすので、オーバーライドの際にはバージョン分岐などが必要そうです。 </追記 2016/01/19> XMLで定義したLayoutからインスタンス化された時には、引数が2つ
このエントリでは、ListView の進化版とも言われる *1 RecyclerView の view type について簡単に紹介します。 RecyclerView 自体については次のページを参照してください。 Creating Lists and Cards | Android Developers (公式のトレーニングガイド) Material Designの目指すところとAndroid側の変更点 - クックパッド開発者ブログ (Cookpad の技術ブログでの簡単な紹介) [Android] RecyclerView を使ってみました - adakoda (使い方の面での ListView との比較がわかりやすい) View type とは View type が何であるかの公式的な説明は見当たらなかったのですが、要は 1 つの RecyclerView の要素として複数種類の V
Google playデベロッパーコンソールの最適化のヒントに出てくる文言なのだけど、具体的にどうすればいいのかわからない。 3.2未満の端末向けに largeや xlarge、3.2以降の端末向けに sw600dpや sw800dpのレイアウトを定義してみたけど変化無し。 2013/07/29追記 「7インチ/10インチタブレット用のスクリーンショットをアップロードしましたが、APKは 7インチ/10インチタブレット用に設計されていません。」と出るようになったので修正の手順を開いてみたら…相変わらず「10 インチ タブレットで利用可能な画面スペースを使用すること」としか表示されない。 Tablet App Quality Checklistには目を通したけど、引っかかりそうなのはアイコンのサイズぐらいなんだよなぁ どうせ機械的にチェックしているのだから具体的にどこがというのを明示してくれ
参考ページ New Tools For Managing Screen Sizes | Android Developers Blog Screen-size Buckets OS3.1までの方法。 buckets dp 具体的な機種 small 426dp × 320dp QVGA[320 * 240] + ldpi = 426*320dp normal 470dp × 320dp large 640dp × 480dp WVGA[800 * 480] + mdpi(Dell Streak)、7 インチ タブレット全般。 xlarge 960dp × 720dp WXGA[1280*800] + mdpi (Xoomなどの典型的な10inch tablet) 初代Galaxy Tabは、[1024*600]+hdpi=682*400dpで本来はnormalだが、フレームワークのミスにより
Android では px (ピクセル)以外にも dp や sp などの単位があります。 ドキュメントはこちら http://developer.android.com/intl/ja/guide/topics/resources/more-resources.html#Dimension dp (dip) Density-independent Pixels 画面の物理的な密度に基づいた抽象的な単位。 この単位は 160 dpi の画面と対応していて、160 dpi の画面で 1 dp = 1 px になる。なので、dp-pixel 比は画面密度(解像度)に応じて変化するが、必ずしも正比例するわけではない。コンパイラは "dip"、"dp" のいずれも理解できるが、"dp" という記述のほうが "sp" との対応関係がよりわかりやすい。 sp Scale-independent Pixe
はじめに Android 4.0 (ICS) 以降からオン・オフを設定する Switch が追加されましたが、この UI を 4.0 未満では使用することができません。そこで今回は Switch のバックポートライブラリである Android Switch Widget Backport 使って 2.1 (Froyo) から Switch を使ってみたいと思います。 ちなみにライセンスは Apache License Version 2.0 です。 Android Switch Widget Backport をインポートする ということでライブラリをプロジェクトにインポートしましょう。まずは Git リポジトリをクローンしてきます。 git clone https://github.com/BoD/android-switch-backport.git switch-backport E
FragmentPagerAdapter を使って各画面に Fragment を使う場合、ある画面の Fragment インスタンスを保持しておいてそれに対して処理を行うということがあります。 public class MainActivity extends SherlockFragmentActivity implements LibraryListener, DrawerListener { private MainFragment mMainFragment; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ViewPager viewPager = (V
Android3.0からNumberPickerという数値入力用のViewが追加されました。 サンプルはこちらに用意していますので、SVNなどでダウンロードして下さい。 詳細内容は以下から。 NimberPicker NumberPickerは数値を入力するためのViewです。 NumberPickerでは、TextEditのようにキーボードから入力できる入力部と入力部の上下に数値を加減できるボタンが付いています。 また、setOnValueChangedListenerを使用することで数値が変化する度に処理を入れることも可能です。 入力値の最大値と最小値を設定する NumberPickerでは入力値の最大値と最小値を設定できます。 設定用のメソッドは以下の表を参照して下さい。
今回はリストの中の項目を選択すると、子供のリストが開くExpandableListViewの使い方を説明します。 大項目を表示させておいて、詳細は選択してから表示するような場面で活用できます。 通常のListViewについては下記の記事などが参考になります。 リストビューを使ってデータを一覧表示する リストビューをカスタマイズする それでは続きへどうぞ ExpandableListActivity 通常のListViewにもListViewクラスを直接使う方法とリスト表示専用のListActivityを継承したActivityを用意する2つの方法がありましたが、ExpandableListViewも同じようにExpandableListViewクラスを使う方法とExpandableListActivityクラスを継承したActivityを用意する方法があります。 ExpandableLis
画面の左側にオーバーレイでアプリの主なオプションを表示するパネル。 通常は隠れていて、画面の左端からスワイプするか、トップレベルにいるならアクションバーのアイコンをタップすることで表示される。 http://developer.android.com/design/patterns/navigation-drawer.html より Navigation Drawer を使う前に、Navigation Drawer デザインガイドにあるこのパターンのユースケースとデザイン原則をきちんと理解すること。 Drawer Layout を作成する support package にある DrawerLayout を利用する。 DrawerLayout をルートビューとし、その中にメインのコンンテンツを表示するビューと、NavigationDrawer として利用するビューを入れる。 <androi
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く