2013Androidアプリ開発!!Androidアプリを作成したい人必見!!Androidアプリの基本動作はもちろんのこと、本には載っていない、調べても見つからない、ソースを修正するだけでは解決できない、アプリ開発者が直面する問題の解決方法についても記載していきます。*基本的にはレイアウトファイル(xml)を使わないソースを載せております。2013年4月23日火曜日ピッカー(NumberPicker)Version11から、使えるようになった機能のNumberPickerを紹介します。指をスライドすると数値がくるくる回って、スマホ感を演出できます。注意点としては、Version11以降しか対応していないことです。スマホが流行りだしたAndroid2.2、Android2.3の頃の端末に対応していないのは使いづらい点ではありますが。Version11より前でも使えるライブラリ(個人で作った)も公開されていますが、端末によっては動かない等ありますので、あんまりお勧めはません。//真ん中にパーツを寄せる。区切りで複数記述できます。}}■実行結果こんな感じでできました。NumberPicker(getApplicationContext());//データピッカーの最小値を設定oPicker.setMinValue(3);//データピッカーの最大値を設定oPicker.setMaxValue(1120);上記の処理でピッカーの生成とダイヤルの最小値と最大値を設定しています。//値をピッカーに設定oPicker.setValue(5);この処理で、初期値を設定しています。現在設定されている値を初期値にするのが良いでしょう。現在、選択されている値の取得はpicker.getValue()int型で返されます。画像や文言が読み込めない(Resフォルダー参照エラー)Eclipseを使っていて、Resフォルダー内の資材がソースに取り込めない事ありませんか??ちゃんとファイル名も拡張子もあっているのに。「プロジェクト」→「クリーン」これで、どうでしょうか?自分はこの方法で上手くいきます。contentというエラーがでた。確認したところ、setContentViewの後に、requestWindowFeatureをすると発生すらしいです。requestWindowFeaturesetContentViewにするとOKです。Androidリアクション:2013年4月10日水曜日グリッドデザイン/テーブルビュー(GridView,BaseAdapter)スマホでよく見かける表示方法のグリッド表示についてです。使い方はリストビューとだいたい同じ感じで使えます。GridView(Context);■グリットビューの列数を指定oGridView.setNumColumns(int);横に何個並べるかの指定です。-1にすると画面サイズに最適な列数が選ばれるようです。用意されている定数で記述したいのですが、用意されている定数を私はしりません。■Adapterを設定oGridView.setAdapter(ListAdapter);アダプターに1セルあたりの情報を持ちます。}}■実行結果それっぽい感じになりました。ArrayList<GridClass>();リスト型のグリッドクラスを作成しています。GridClass{■クラスファイルで作成したクラスです。グリッド表示時に1つのセルに必要な情報を格納するクラスです。resId;}}ListAdapterクラスの文字列と画像を設定する記述を下記のように変更するとGridClassの用途がわかりやすくなると思います。構造体のような使い方をしているだけです。R.drawable.ic_launcher));}この処理で先ほど作成した、リストにグリッドクラスの情報を格納していきます。ListAdapter());こちらの処理で、グリッドビューにアダプタの情報(BaseAdapterをextendsしているクラス)を渡しています。BaseAdapterをextendsしているクラスについてですが、、getCount()の数だけ、処理は行われます。(v==~の中で1セルのレイアウトを作成して、if(oGrid~の中で、その作成したレイアウトに必要な情報をoGridListから取得して、レイアウトに設定しています。BaseAdapterをextendsするクラスは結構よく使うので、使い方を覚えておきましょう。Androidリアクション:2013年4月9日火曜日ラジオボタン-02(カスタマイズ編)ラジオボタンをカスタマイズして、ちょっとそれっぽくしてみようと思います。xmlで作成した、レイアウトファイルを読み込んでそれっぽく作ります。RadioButton)xmlで背景を作成する方法に関してはxmlで背景を変更(android:shape=)を参照してください。■実行結果メインの処理は特に変わったことはしていませんが、//左から右へとオブジェクトを配置oRadiGrop.setOrientation(LinearLayout.HORIZONTAL);ラジオボタンを横に並べる記述です。何も記述しないと縦に縦にラジオボタンが配置されます。oRadiGrop.setGravity(Gravity.CENTER_HORIZONTAL);ラジオボタンを真ん中に集める処理です。Make_RadioButton関数の//ラジオボタンを消すoRadioBtn.setButtonDrawable(android.R.id.empty);//作成したxmlを背景に設定oRadioBtn.setBackgroundResource(R.drawable.stylebutton);が今回のポイントで//ラジオボタンを消すoRadioBtn.setButtonDrawable(android.R.id.empty);で、ラジオボタンのチンチクリンの丸いチェックを表示させないようにしています。これをすると、ラジオボタンらしさは消えます。//作成したxmlを背景に設定oRadioBtn.setBackgroundResource(R.drawable.stylebutton);この処理で、なくしたラジオボタンらしさに、新たな個性を付け加えます。xmlファイルを見ていきましょう。--><itemandroid:state_checked="false"android:shape="rectangle">この記述で、ラジオボタン選択中に呼ぶアイテムとラジオボタン未選択時に呼ぶアイテムとを区別しています。/>この処理によって、ボタンの4角を少しだけ、曲げています。選択時に<strokeandroid:width="2dp"をすることで、ボタンを少し小さく見せています。押されている感を出しています。グラデーションも自分なりに工夫してみましたが。??デザインとか何かいろいろ面倒なことが多いのですが、これを用いることで、iPhone風のAndroidアプリも作成できます。「iPhoneとまったく同じで作って!!」みたいな仕様が来たときはこんな感じでパワープレイで乗り切りましょう!!てか、そんな仕様を私は絶対に認めないけど。言いつつも、結局折れてしまいますが。RadioButton)ラジオボタンは複数の選択肢から、ユーザーに1つだけ選んでもらう際に利用されます。個人的にはラジオボタンは好きではないのですが、そういう事を言うと「システムの人って、本当に面倒くさい!!」とか思われそうなので、心にしまっています。RadioButton(this);さらに//ラジオボタンにIDを設定oRadioBtn.setId(int);//ラジオボタンに文字列を設定oRadioBtn.setText(String);idを設定することにより、一意に認識することができるようになり、setTextで表示する文字列を設定できます。こんな感じでOKです。生成時の引数thisをgetApplicationContext()にするとsetTextの文字が画面に表示されませんでした。複数のラジオボタンを束ねるマネージャー的なoRadiGropを利用します。LayoutParams);ラジオグループを作成して、そこに各ラジオボタンを追加するイメージです。生成時に引数をgetApplicationContext()にしてますが、今のところ問題ありません。String.valueOf(((RadioButton)findViewById(Id)).getText());こちらの処理はチェックされている文字列を取得しています。第2関数のIDから、ラジオボタンを探して、そのラジオボタンに設定されているテキストを取得して、文字列で返しています。oRG.getCheckedRadioButtonId();こちらの処理はリスナー内で読んでいますが、リスナー外でも全然呼べます。現在の状態が知りたいときにサクッと呼んでください。他にも実装方法はたくさんあるので、いろいろ試してみてください。findViewById)レイアウトの隠し方。消したいけど、消せないこと。消したくないけど、消えてしまったこと。LinearLayoutのパーツを消すことはとても簡単です。使い方は上記な感じで。現在のActivityが終了となります。startActivity)今回は今いるActivityから、他のActivityを呼ぶ方法を紹介します。