Furudateのブログ

プログラミングやネットワーク系の知識・技術がメインのブログ。技術メモ帳的な感じになるかと。岩手から発信していきます。

Android

【Android】DialogFragmentのdismissで落ちるときの対策

こんにちは。 これまでDialogFragmentについて何回か触れてきましたが、どうもたまに dismiss で落ちることがあるようです。 DialogFragmentの表示を消すときは、基本的に以下のようにして消していました。 if (dialogFragment.getShowsDialog() && dialogFr…

【Android】AsyncTaskでバックグラウンド処理とキャンセル対応

こんばんは。 今回は、Android(Java)でバックグラウンド処理(非同期処理)をする方法について、メモします。 また、バックグラウンド処理中にプログレスダイアログを表示させ、キャンセルにも対応するようにしました。 Androidでバックグラウンド処理をし…

【Android】キャンセルボタン対応のProgressDialog

こんにちは。 前回のエントリーでDialogFragmentについて触れました。 この記事の中でProgressDialogを実装していますが、今回はこのProgressDialogにキャンセルボタンを付けたいと思います。 それでは早速コードを書きます。 なお、インスタンス生成時の引…

【Android】DialogFragmentを使ってみる

こんにちは。 前回、こちらのエントリーでAlertDialogについて触れました。 このエントリーの最後にも書いてあるのですが、現在はDialogFragmentが推奨されており、こちらを使うのが良いようです。 そこで、今回はこれを使ってAlertDialogとProgressDialogを…

【Android】画面起動後にフォーカスを当てるViewを指定するのと指定した文字の後にカーソルを移動する

こんにちは。今回はAndroidのフォーカスについてです。画面起動後、EditTextなどにフォーカスを自動で当てたりしたいときがあります。 その方法を今回はメモしておきます。 起動後にEditTextにフォーカスを当てる 早速コードです。 レイアウトファイルで定義…

【Android】ボタンの表示・非表示

こんにちは。今回はAndroidでのボタンの表示・非表示です。 簡単なのですが、つい忘れがちなのでメモしておきます。さっそくソースです。 Button btn1 = (Button)MainActivty.this.findViewById(R.id.Button01); btn1.setVisibility(View.VISIBLE); // 表示 …

【Android】Google Playへのアプリ公開の方法

こんにちは。今回は初めて自分でGoogle Playにアプリを公開しましたので、その方法をメモしておきたいと思います。 色々なサイトで詳しく解説してあるのでメモる必要もあまりないかもしれませんが・・・。 デベロッパー登録 まずはDeveloper Consoleでデベロ…

【Android】ListViewのスクロール位置を記憶する

こんにちは。今回はAndroidでListViewから他の画面に飛んでまた戻ってきたときに、そこまででスクロールしていた位置に戻す処理をしたいと思います。 以下スクロール位置を記録する処理と、設定する処理です。 int position = listView.getFirstVisiblePosit…

【Android】リストビューにチェックマークを追加し、条件を満たしたときにチェックを入れる

こんばんは。Androidのリストビューのrowのレイアウトに、CheckedTextViewを使うとリストビューにチェックマークを入れることができます。 ただ、普通にしているとタッチしたときにチェックがされちゃいます。 設定変更などの時はそれで良いのかもしれません…

【Android】シングルトンパターンを用いてグローバルのような共通クラスを作成

こんばんは。前回、Intentでクラスの受け渡し方法について書きました。しかし、これだと各Acitvityで二次元配列のようなオブジェクトを共通に扱うことは出来ません。 そこで、今回オブジェクトをグローバルのように扱える方法を書いていきたいと思います。こ…

【Android】Intentでクラスを渡す

こんばんは。今回はIntentでクラスを渡す方法をメモします。 これを使うと、オブジェクトの受け渡しが可能となります。ただし、クラス内のフィールドはプリミティブ型(intやboolean)か、もしくはシリアライズ可能なクラスでないといけません。 なので、多…

【Android】Shared Preferencesの使い方

こんにちは。今回は、ログイン情報(ID)や設定情報などの、簡単なデータを保存するのに最適なプリファレンスについて書きたいと思います。早速、プリファレンスに保存して、その値を読み込むコードを書いてみます。 プリファレンスへのデータ保存 // プリフ…

【Android】キーボードが出現したら画面をスクロールする

こんばんは。Androidで、テキストフォームとかに入力しようとすると、キーボードが出てしまい、下にあるボタンなどが隠れてしまう場合があります。そんなときはキーボードが出ている状態で画面をスクロールできると良いですよね。そこで、それを実装したいと…

【Android】HashMapとSparseArray

こんばんは。前回のエントリーで書いたように、HashMapの二次元配列をやろうとしたとき、警告が出ました。やろうとしたこと: HashMap<String, String> data = new HashMap<String, String>(); // 一次元配列。 Map<Integer, HashMap<String, String>> rootData = new HashMap<Integer, HashMap<String, String>>(); 警告: Use new SparseArray<HashMap<String, String>>(...) instead for</hashmap<string,></integer,></integer,></string,></string,>…

【Android】文字列から数値に変換(その逆も)

こんにちは。今回はAndroidに限らずJavaに言えることですが、文字列を数値に変換し、数値を文字列に変換する方法をメモしたいと思います。 割と忘れてしまうので・・・ 文字列から数値へ変換 String str = "value"; int num = Integer.parseInt(str); 数値か…

【Android】FragmentでfindViewByIdをしてButtonなどを取得する

こんにちは。Fragmentでレイアウトファイルのほうで作成したButtonを、ActivityでやっているとおりfindViewByIdで取得しようとすると、エラーが出ます。 findViewByIdはFragmentでは定義されていないからです。そこで、今回はFragmentでfindViewByIdをする方…

【Android】ウィジェットの並べ方

こんにちは。Androidでは、画面のレイアウトをGUIで指定することができますが、細かい指定(例えばボタンの高さをあわせたり)はXMLのコードで書かないと難しいです。そこで、そのコードについて今回は書きたいと思います。今回は相対指定によりウィジェット…

【Android】ListViewで項目を選択したときに背景色を変える

こんばんは。前回の記事では、ListViewの使い方を載せました。その際に、ソースコードにはちらっと背景色を交互に変える方法も載せていました。 しかし、背景色を変えると項目をタッチしたときに色が変化しなくなってしまい、タッチしたかどうかがわかりづら…

【Android】colors.xmlを作成して、プログラム中で参照する場合

こんばんは。Androidでは、res/values に colors.xml を作成しておくと、色指定のときに何かと役に立ちます。 XMLでは @color/color1 などのようにすればOKですが、プログラム中で参照しようとした際にハマってしまったのでメモします。プログラム中では、以…

【Android】TextViewなどに枠線をつける方法

こんばんは。Androidで、TextViewやImageViewなどに枠線を表示させたいときがありますが、レイアウトのプロパティにそのようなものはありません。そこで、xmlファイルを作成して枠線を表示させてみたいと思います。まず、以下のようなファイルを res/drawabl…

【Android】ImageButtonの枠を消す方法とクリックした時に色や画像を変える方法

こんにちは。ImageButtonを使うと、デフォルトだと枠ができてしまい少し格好悪いです。 そこで、その枠をなくしたいのですが、なくすだけならImageButtonの背景を以下のように指定するとできます。 android:background="@null" ただ、上記のようにやるとクリ…

【Android】画面の向きを固定にする

こんにちは。今回はAndroidの画面の向きを固定する方法を書きます。 横向きにしてほしくないときなどに使うと思います。やり方はとっても簡単で、AndroidManifest の Activity 属性に以下の2つを加えるだけです。 android:screenOrientation="portrait" andr…

【Android】連想配列の扱い方

こんにちは。今回は忘れがちなのでAndroid(Java)での連想配列の扱い方についてメモしておきます。連想配列はHashMapというクラスを用いて作成します。 以下ソースコードです。 // Map<Keyの型, 値の型>となる。 Map<String, String> data = new HashMap<String, String>(); // 連想配列に格納 // データを連想</string,></string,></keyの型,>…

【Android】AlertDialogについて

こんにちは。Androidでポップアップメッセージを表示させる場合は、AlertDialogを使います。 今回はこれに関してメモしていきたいと思います。まず、AlertDialogの基本的な使い方は以下のようになります。 new AlertDialog.Builder(this).setTitle("title").…

【Android】ListFragmentとListViewの使い方

こんにちは。今回はListViewを使ってデータを表示する方法を書きたいと思います。 タブなどを使った際に使えるListFragmentと、ListViewの両方について書きたいと思います。 ListFragmentについて FragmentはAndroid3.0から導入された新しいクラスです。 Fra…

【Android】プログレスダイアログを表示してロード中画面を作成する

こんにちは。今回はAndroidでプログレスダイアログを用いてロード中画面を作成したいと思います。 よく見るぐるぐるまわるやつのスタイルと、プログレスバーを出すスタイルの両方をメモします。 円スタイルのプログレスダイアログ こんな感じにします。 Prog…

【Android】画面遷移時のアニメーション設定

こんばんは。今回は画面遷移の時にアニメーションを設定し、iPhoneライクのようにしたいと思います。 スタイルを設定すると簡単にアプリ内全ての画面遷移に適用できるので、それでやりたいと思います。また、例えばひとつの画面遷移では左右に画面がフェード…

【Android】画面遷移先にデータを渡す方法

こんばんは。今回は、Intentで画面遷移をした先の画面に、データを渡す方法をメモしておきたいと思います。 データを渡す側のソースコード Intent intent = new Intent(MainActivity.this, SubActivity.class); // 値をセット intent.putExtra("key", "value…

【Android】アプリの背景画像を変更する

こんばんは。今回は非常に簡単なことですが、つい忘れがちなのでアプリの背景画像の変更方法についてメモしておきます。 まず、res/drawable-hdpiに画像を入れます ここに一つ入れておけば自動でリサイズしてくれます。なので、全てのdrawableフォルダに入れ…

【Android】ActionBarにタブを付けてスワイプでも画面を切り替えられるようにする

こんばんは。今回はActionBarにタブを付けてタブで画面を切り替えられるようにします。 また、スワイプでも切り替えられるようにします。今回はちょっとしたところですごい詰まってしまいましたが、解決したのでメモしておきます。また、参考にさせていただ…