Android
JSONの値がnullかどうか判定する方法です。 以下のJSONデータのnullを判定する例を書いていきます。 { data1 : "データ1" data2 : "データ2", data3 : null } JSONObjectの作成 JSONObject json = new JSONObject(JSONデータ); isNull() 値がnullまたはキー…
ArrayListのなかからHashMapを取り出して、Logに表示するまでを書いていきます。 表示方法 ArrayListの作成 ArrayList<HashMap> list = new ArrayList<HashMap>(); ArrayListにHashMapを格納 for (int i = 0; i < 10; i++) { HashMap<String, String> map = new HashMap<String, String>(); map.put("name", "To</string,></string,></hashmap></hashmap>…
地図に表示されるピンとそのピンに表示される吹き出しをクリックしたときに、何かしらの処理を実行したい場合の方法です。 クリックリスナーについて書いていきます。 ピンのクリックリスナー mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickLis…
Fragmentに地図を表示し、その上にピンを表示する方法にハマったので、その解決方法を書きます。 Google APIキーを取得し設定ていることを前提としています。 レイアウトの作成
配列の中身をランダムに並べ替える方法です。 並び替え方法 ArrayList<String> list = new ArrayList<String>(); list.add("test1"); list.add("test2"); list.add("test3"); Collections.shuffle(list);// 配列の中身をシャッフル Log.v("配列の先頭", choices.get(0));// </string></string>…
Fragmentへ画面遷移する方法は、Activityへの画面遷移と異なります。 今回は、Fragmentへ画面遷移する方法を書きます。 Activity -> Fragment FragmentManager fragmentManager = getSupportFragmentManager(); fragmentManager.beginTransaction().replace(…
ラジオボタンはRadioGroupクラスとRadioButtonクラスを利用します。 RadioGroupクラスには2つ以上のRadioButtonクラスを持たせるようにします。 レイアウトの作成 <RadioGroup android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/RadioGroup"> </radiogroup>
Fragmentでのコンストラクタの引数によるFragmentへの値の受け渡しは推奨されていないのでBundleにラップして情報をFragmentクラスへ受け渡すsetArguments()を使用します。 なぜsetArguments()を使用するかは、参考サイトに詳しく載っていたので、ご覧下さい…
非同期処理が終わったタイミングで実行しようとした処理で「cannot perform this action inside of onloadfinished」というエラーが発生しています。 このエラーはGUIに関する操作をメインスレッド以外のスレッドから行おうとした場合に発生するものです。 …
以下サイトに移転しました。 choippo.com
EditTextでの初期表示に薄く文字を表示するためには、android:hintを使用します。 使用例 <EditText android:layout_height="match_parent" android:layout_width="match_parent" android:inputType="text" android:hint="@string/content_comment" android:id="@+id/edit_comment"> 参考サイト: 四の五の: EditTextの初期表示に薄く文字を表示させるアレ</edittext>
FragmentでIdを取得するとき、findViewByIdをしてもIdを取得することができません。 FragmentはfindViewByIdが定義されていないからです。 ですが、FragmentでIdを取得する方法は簡単にできます。 Idの取得方法 Idの取得は、onCreateViewのなかで処理を行い…
Spinnerを使用することで、プルダウンまたはダイアログでアイテムを複数表示することができます。 アイテムの取得方法も2通りあったので、それも含め以下に書きます。 レイアウトの作成 <Spinner android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/spinner" android:spinnerMode="dialog" /> プルダウン表示の場合はdialog、プルダウン表示の場合はdropdownをand</spinner>…
入力欄を表示するEditTextで、入力するデータの種別に応じて指定値をandroid:inputType="指定値"に指定することで、入力の制限(バリデーション)ができるようになります。 種類がたくさんあるので以下にまとめます。 指定値の種別 指定値 動作 none 入力不…
今まではFragmentの管理はActivity単位が基本でしたが、getChildFragmentManagerを使用することでFragment内での子Fragmentを管理することができます。 使用例 Fragment childFragment = new ChildFragment(); FragmentTransaction transaction = getChildFr…
ScrollViewを使用することで、スクロールバーを実現することができます。 スクロールバーの作成 レイアウトファイル(.xml)に以下を追加します。 <ScrollView android:layout_width="match_parent" android:layout_height="match_parent"> </scrollview>
FragmentTabHostはFragmentをタブで切り替えるためのViewです。 タブの作成は以前TabActivityを使っていましたが、現在は非推奨になっているのでFragmentTabHostの使用をおすすめします。 また、Android 1.6から利用することができるものとなっています。 今…
HTTP通信でデータをGET/POSTをする場合の処理です。 HTTP通信をする場合、非同期処理をしないといけないので注意して下さい。 GET HttpClient client = new DefaultHttpClient(); // パラメータの設定 ArrayList<NameValuePair> value = new ArrayList<NameValuePair>(); value.add( new B</namevaluepair></namevaluepair>…
AsyncTaskLoaderのコールバック処理であるLoaderCallbacksですが、それに使うLoaderManagerについてよく分からなかったので、まとめてみます。 Activity.getLoaderManager 複数のLoaderを管理するLoaderManagerのインスタンスを取得 各Activity/FragmentにLo…
Bundleとは AndroidにはActivityのライフサイクルがあります。 別のActivityが前面に来るなどにして、メモリが不足した場合にActivityが破棄されることがあります。 このとき、メモリ上にだけ展開されていたインスタンス変数などの値も破棄されてしまいます…
Android 3.0以降、メインスレッドでネットワーク処理を行うとエラーにるみたいです。 メインスレッドにネットワーク処理を書いてしまうと、NetworkOnMainThreadExceptionというエラーがでてしまいます。 メインスレッドでHTTP通信を行う場合は、非同期処理を…