今年中にアプリを公開したかったんですが、どうもヤバそうです。
sdk入れなおしたりしてるので、進まない。。。
公開するアプリはそのうち説明をblogにあげるつもりです。
なんとか間に合うといいけど。。。
2011年12月27日火曜日
2011年12月17日土曜日
Android Market デベロッパー登録
最近blogを全然up出来てませんでした。。。
急ぎでアプリを作ることになって、そちらに精一杯でした。
(アプリの事は別で書きますね。)
さて、本題。
今日はAndroid Marketにデベロッパー登録を行いました。
つまりアプリを公開出来る状態になった、と言う事です。
メモ書きとして、登録方法を残しておきます。
(これから開発者登録を考えている方は参考にして下さい。)
1. Android Marketページ(http://market.android.com/publish/)を表示し、Google Accountでログインする。
2. 開発者情報を入力するページが表示されるので、掲載情報の入力を行い「次へ」をクリックする。
3. Google Checkoutを利用して開発者登録を続けるかどうかの確認ページが表示されるので、「次へ」をクリックする。
4. 注文明細が表示されるので、必要な項目にチェックをいれ、「今すぐ注文する」をクリックする。
(Google Checkout未登録の場合、クレジットカード情報を登録するページへ遷移します。
その場合は、必要情報を入力して、「同意して続行する」をクリックする事で注文明細の確認画面へ遷移します。)
5. 完了画面が表示される。
以上です。
デベロッパー登録には25ドル掛かりますが、一度登録をするとアプリをupし放題になります。
(おまけに今は円高ですしね。)
sirocoもとうとうデベロッパー登録をしたので、アプリ公開へ一歩前進しました。
冒頭にも述べたとおり、最近はアプリ作りをしていましたので、年内中に公開出来ればな~と思っています。
頑張るぞ~
急ぎでアプリを作ることになって、そちらに精一杯でした。
(アプリの事は別で書きますね。)
さて、本題。
今日はAndroid Marketにデベロッパー登録を行いました。
つまりアプリを公開出来る状態になった、と言う事です。
メモ書きとして、登録方法を残しておきます。
(これから開発者登録を考えている方は参考にして下さい。)
1. Android Marketページ(http://market.android.com/publish/)を表示し、Google Accountでログインする。
2. 開発者情報を入力するページが表示されるので、掲載情報の入力を行い「次へ」をクリックする。
デベロッパー名 | アプリの開発者として表示される名前 |
メールアドレス | メールアドレス |
ウェブサイトのURL | 運営しているウェブサイトのURL |
電話番号 | 市外局番の先頭の「0」を取り、日本の国番号を示す「81」を付ける。 ※普通電話 03-1234-5678 の場合、+81-3-1234-5678 と入力。 ※携帯電話 090-1234-5678 の場合、+81-90-1234-5678 と入力。 |
3. Google Checkoutを利用して開発者登録を続けるかどうかの確認ページが表示されるので、「次へ」をクリックする。
4. 注文明細が表示されるので、必要な項目にチェックをいれ、「今すぐ注文する」をクリックする。
(Google Checkout未登録の場合、クレジットカード情報を登録するページへ遷移します。
その場合は、必要情報を入力して、「同意して続行する」をクリックする事で注文明細の確認画面へ遷移します。)
5. 完了画面が表示される。
以上です。
デベロッパー登録には25ドル掛かりますが、一度登録をするとアプリをupし放題になります。
(おまけに今は円高ですしね。)
sirocoもとうとうデベロッパー登録をしたので、アプリ公開へ一歩前進しました。
冒頭にも述べたとおり、最近はアプリ作りをしていましたので、年内中に公開出来ればな~と思っています。
頑張るぞ~
2011年12月3日土曜日
PreferenceActivityへの画面遷移
前回はPreferenceActivityを使用して設定画面を作成しました。
今回は別画面のオプションメニューから設定画面を表示させてみます。
イメージがつきやすいように実行結果から。
まずはアプリケーションを起動します。
画面には特に何も表示させていません。
メニューボタンを押すと、オプションメニューが表示されます。
オプションメニューの設定ボタンをタップすると、設定画面が表示されます。
単純な遷移ですが、どんなアプリを作る場合でも役に立ちますので、
しっかり押さえていきます。
次にJavaのソースコードを見ていきます。
[17行目]
まずはオプションメニューの設定を、onCreateOptionsMenuメソッドを
オーバーライドする事で行っています。
MenuItemの生成と、アイコンの設定ですね。
[28行目]
次にオプションメニューのアイテムが選択された場合の手続きを
onOptionsItemSelectedメソッドをオーバーライドする事で行っています。
onCreateOptionsMenuで作成されたアイテムを選択された場合に、
Intentを利用して前回作成した設定画面へ遷移させています。
※switch分を使用しているのはオプションメニューのアイテムが増えることを想定して、
拡張出来るようにしている為です。
ここまでで設定画面への遷移は出来ます。
onActivityResultメソッドをオーバーライドしていますが、
今回は何もしていません。
次回くらいに設定画面で入力した内容を使って動作させたいので、記載してます。
"res/layout/preference.xml"は前回と同様です
(→ こちらをご参照あれ)。
"res/layout/main.xml"は空っぽですが、一応次の通りです。
今回は初めて2画面使用しましたので、
"AndroidManifest.xml"も記載します。
以上です。
PreferenceAcitivityで設定画面を作るテクニックも重要ですが、
表示させる工程も必要ですので、この動作をチョイスしました。
いきなり設定画面ってアプリもそうないですからね~
sirocoの事を少し書くと、最近仕事が忙しくなってきたので、
なかなか学習時間がとれません。。。
ただ、アプリ作りの時間はsirocoにとって
とても楽しい時間にもなっているので、
出来る限りBlogもUPしていこうと思います。
今回は別画面のオプションメニューから設定画面を表示させてみます。
イメージがつきやすいように実行結果から。
まずはアプリケーションを起動します。
画面には特に何も表示させていません。
メニューボタンを押すと、オプションメニューが表示されます。
オプションメニューの設定ボタンをタップすると、設定画面が表示されます。
単純な遷移ですが、どんなアプリを作る場合でも役に立ちますので、
しっかり押さえていきます。
次にJavaのソースコードを見ていきます。
import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; public class PreferenceSampleActivity extends Activity { private final int REQUEST_CODE=0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } @Override public boolean onCreateOptionsMenu(Menu menu) { MenuItem menuItem = menu.add( Menu.NONE, Menu.FIRST, Menu.NONE, "Preference"); menuItem.setIcon(android.R.drawable.ic_menu_preferences); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case Menu.FIRST: Intent intent = new Intent(this, PreferenceSample01.class); startActivityForResult(intent, REQUEST_CODE); return true; } return false; } @Override protected void onActivityResult( int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (REQUEST_CODE == resultCode) { // TODO 設定画面の変更値を受け取る } } }
[17行目]
まずはオプションメニューの設定を、onCreateOptionsMenuメソッドを
オーバーライドする事で行っています。
MenuItemの生成と、アイコンの設定ですね。
[28行目]
次にオプションメニューのアイテムが選択された場合の手続きを
onOptionsItemSelectedメソッドをオーバーライドする事で行っています。
onCreateOptionsMenuで作成されたアイテムを選択された場合に、
Intentを利用して前回作成した設定画面へ遷移させています。
※switch分を使用しているのはオプションメニューのアイテムが増えることを想定して、
拡張出来るようにしている為です。
ここまでで設定画面への遷移は出来ます。
onActivityResultメソッドをオーバーライドしていますが、
今回は何もしていません。
次回くらいに設定画面で入力した内容を使って動作させたいので、記載してます。
"res/layout/preference.xml"は前回と同様です
(→ こちらをご参照あれ)。
"res/layout/main.xml"は空っぽですが、一応次の通りです。
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > </LinearLayout>
今回は初めて2画面使用しましたので、
"AndroidManifest.xml"も記載します。
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="jp.gr.java_conf.siroco.preference.sample" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".PreferenceSampleActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".PreferenceSample01" /> </application> </manifest>
以上です。
PreferenceAcitivityで設定画面を作るテクニックも重要ですが、
表示させる工程も必要ですので、この動作をチョイスしました。
いきなり設定画面ってアプリもそうないですからね~
sirocoの事を少し書くと、最近仕事が忙しくなってきたので、
なかなか学習時間がとれません。。。
ただ、アプリ作りの時間はsirocoにとって
とても楽しい時間にもなっているので、
出来る限りBlogもUPしていこうと思います。
2011年11月30日水曜日
東方神霊廟
たまにはAndroid以外の事も。
以前少し触れたけど、sirocoはゲームを作りたかった事がありました。
無理だったけどね。。。
(まだ諦めてないよ)
ゲームは子供のころから好きで、今でも少しやっています。
最近やっているのは東方Projectの最新作「東方神霊廟」。
紅魔卿からずっとやってきたけど、sirocoはへたっぴいなので
Nomalノーコンテニュークリアした事なかったのです。
けれど、先日、とうとうやりました!
ノーコンクリアです!!
勿論Nomalですが、sirocoにとっては凄い事です!
感激で、エンディング中はずっと震えてました。。。
あまりに嬉しかったので、アプリ関係ないけど、
載せちゃいました(^ - ^;)
2011年11月28日月曜日
PreferenceActivityを使用した設定画面
以前予告した通り、設定画面の作り方について学習していきます。
設定画面は大抵のアプリケーションに用意されていて、
sirocoのアプリにも、勿論、用意するつもりです。
設定画面の作成方法は色々とありますが、
PreferenceActivityを使った、最もシンプルな方法を紹介します。
今回は先に実行結果。
上記imageの通り、
「チェックボックス」、「エディットテキスト」、「リスト」、「リングストン」を表示します。
それぞれの要素が次の"res/layout/preference.xml"の各タグに紐付いています。
05行目:CheckBoxPreferenceタグがチェックボックスに、
09行目:EditTextPreferenceタグがエディットテキストに、
14行目:ListPreferenceタグがリストに、
21行目:RingtonePreferenceタグがリングストンに対応します。
綺麗な入れ子になっているので、理解しやすいと思います。
次は画面に表示する文字列と、リストの要素関連のxmlファイルです。
"res/values/strings.xml"
"res/values/arrays.xml"
最後にJavaコード。
addPreferencesFromResourceメソッドで
設定画面の項目を定義したxmlファイル(preference.xml)を指定しているだけです。
表示された要素をタップした様子は次の通りです。
大半がxmlファイルの設定で行える為、手軽に作成が出来ます。
実際のアプリの設定画面では、そのアプリに適した内容をpreference.xmlに設定するわけです。
sirocoの場合、カメラアプリを作成しようとしているので、
フラッシュのon/offの切り替えや、画面サイズなどを定義するのかな~
PreferenceActivityについては、あと何度か学習して、
より実践的な設定画面を作ってみたいと思います。
設定画面は大抵のアプリケーションに用意されていて、
sirocoのアプリにも、勿論、用意するつもりです。
設定画面の作成方法は色々とありますが、
PreferenceActivityを使った、最もシンプルな方法を紹介します。
今回は先に実行結果。
上記imageの通り、
「チェックボックス」、「エディットテキスト」、「リスト」、「リングストン」を表示します。
それぞれの要素が次の"res/layout/preference.xml"の各タグに紐付いています。
<?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <PreferenceCategory android:title="@string/title"> <CheckBoxPreference android:key="checkbox_key" android:title="@string/checkbox_title" android:summary="@string/checkbox_summary" /> <EditTextPreference android:key="edittext_key" android:title="@string/edittext_title" android:summary="@string/edittext_summary" android:dialogTitle="@string/edittext_dialog_title" /> <ListPreference android:key="list_key" android:title="@string/list_title" android:summary="@string/list_summary" android:dialogTitle="@string/list_dialog_title" android:entries="@array/list_entries" android:entryValues="@array/list_entry_values" /> <RingtonePreference android:key="ringtone_key" android:title="@string/ringtone_title" android:showDefault="true" android:summary="@string/ringtone_summary" /> </PreferenceCategory> </PreferenceScreen>
05行目:CheckBoxPreferenceタグがチェックボックスに、
09行目:EditTextPreferenceタグがエディットテキストに、
14行目:ListPreferenceタグがリストに、
21行目:RingtonePreferenceタグがリングストンに対応します。
綺麗な入れ子になっているので、理解しやすいと思います。
次は画面に表示する文字列と、リストの要素関連のxmlファイルです。
"res/values/strings.xml"
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">preferenceSample</string> <string name="title">設定画面Sample</string> <string name="checkbox_title">Checkbox</string> <string name="checkbox_summary">CheckboxのSummary</string> <string name="edittext_title">EditText</string> <string name="edittext_summary">EditTextのSummary</string> <string name="edittext_dialog_title"> EditTextのダイアログタイトル </string> <string name="list_title">List</string> <string name="list_summary">ListのSummary</string> <string name="list_dialog_title">Listのダイアログタイトル</string> <string name="ringtone_title">Ringtone</string> <string name="ringtone_summary">RingtoneのSummary</string> </resources>
"res/values/arrays.xml"
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="list_entries"> <item>First</item> <item>Second</item> <item>Third</item> </string-array> <string-array name="list_entry_values"> <item>FirstのValue</item> <item>SecondのValue</item> <item>ThirdのValue</item> </string-array> </resources>
最後にJavaコード。
addPreferencesFromResourceメソッドで
設定画面の項目を定義したxmlファイル(preference.xml)を指定しているだけです。
import android.os.Bundle; import android.preference.PreferenceActivity; public class PreferenceSample01 extends PreferenceActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.layout.preference); } }
表示された要素をタップした様子は次の通りです。
大半がxmlファイルの設定で行える為、手軽に作成が出来ます。
実際のアプリの設定画面では、そのアプリに適した内容をpreference.xmlに設定するわけです。
sirocoの場合、カメラアプリを作成しようとしているので、
フラッシュのon/offの切り替えや、画面サイズなどを定義するのかな~
PreferenceActivityについては、あと何度か学習して、
より実践的な設定画面を作ってみたいと思います。
2011年11月22日火曜日
ListViewの折り畳み
ListViewについて色々とやってきましたが、今回で最後にします。
ListViewはリストを画面に表示するクラスでしたが、
リストを選択すると更にリストが表示される、
階層表示を実装してみます。
まずはJavaのコードです。
1. ExpandableListViewクラスのインスタンスを生成(22行目)
⇒これが画面に表示されるリストの骨格です。
名前の通りListViewを継承しています。
2. SimpleExpandableListAdapterクラスのインスタンスを生成(42行目)
⇒ExpandableListViewに値をセットする為のアダプタ。
親リストと子リストをコンストラクタで渡してやる事で、
階層表示を可能にします。
3. ExpandableListViewにSimpleExpandableListAdapterをセット(55行目)
⇒作成したアダプタをリストビューに設定する事で、
親リストと子リストが格納されます。
その他にクリックリスナーを設定していたり、
privateなメソッドで親リストや子リストの生成を行っていますが、
今回の主題であるリストの階層表示には直接関係ありません。。。
続いて"res/layout/main.xml"のコードです。
"res/layout/row.xml"のコードです。
上記のコードを実行すると、次のように表示されます。
親リストをタップする事で子リストが表示されます。
今回は親リストに対して、子リストを2件ずつ設定しましたが、
子リストにあたるArrayListの要素数だけ表示する事が可能です。
ListViewを4回程学習してきましたが、
各パターンごとに専用のアダプタが用意されており、
使い方さえわかれば初心者のsirocoでも実装は難しくないと感じました。
色々なAPIが用意されているのもAndroidの良いところですね~
次回はアプリには大抵用意されている「設定画面」を作ってみたいと思います。
ListViewはリストを画面に表示するクラスでしたが、
リストを選択すると更にリストが表示される、
階層表示を実装してみます。
まずはJavaのコードです。
import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.ExpandableListAdapter; import android.widget.ExpandableListView; import android.widget.SimpleExpandableListAdapter; import android.widget.Toast; public class ListView11 extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // ExpandableListViewインスタンスを取得 ExpandableListView listView = (ExpandableListView) findViewById(R.id.list); // 親のリストを格納するArrayListインスタンスを生成 List<Map<String, Object>> parentsList = new ArrayList<Map<String, Object>>(); // parentsListにデータを追加 parentsList.add(getParentData("親1")); parentsList.add(getParentData("親2")); // 子のリストを格納するArrayListインスタンスを生成 List<List<Map<String, Object>>> childrenList = new ArrayList<List<Map<String, Object>>>(); // 子リストにデータを追加 childrenList.add(getChildList("子1-1", "子1-2")); // 親1に対応 childrenList.add(getChildList("子2-1", "子2-2")); // 親2に対応 // SimpleExpandableListAdapterインスタンスを生成 SimpleExpandableListAdapter adapter = new SimpleExpandableListAdapter( this, parentsList, android.R.layout.simple_expandable_list_item_1, new String[]{"parent_text"}, new int[]{android.R.id.text1}, childrenList, R.layout.row, new String[]{"child_text"}, new int[]{R.id.child_text} ); // 作成したアダプタをExpandableListViewにセットする listView.setAdapter(adapter); // クリック時のリスナを設定 listView.setOnChildClickListener( new ExpandableListView.OnChildClickListener() { @SuppressWarnings("unchecked") // ジェネリクスを使用したキャストの為 @Override public boolean onChildClick( ExpandableListView parent, View view, int groupPosition, int childPosition, long id) { // アダプタからデータを取得してトーストで表示 ExpandableListAdapter adapter = parent. getExpandableListAdapter(); Map<String, Object> childMap = (Map<String, Object>)adapter. getChild(groupPosition, childPosition); Toast.makeText( ListView11.this, childMap.get("child_text").toString(), Toast.LENGTH_SHORT ).show(); return false; } }); } /** * 親リストに格納するデータを返す * * @param object 親リストに格納するMapのvalue値 * @return parentData 親リストに格納するMap */ private Map<String, Object> getParentData(Object object) { Map<String, Object> parentData = new HashMap<String, Object>(); parentData.put("parent_text", object); return parentData; } /** * 子リストに格納するデータを返す * * @param object 子リストに格納するMapのvalue値の配列 * @return childList 子リストに格納するList */ private List<Map<String, Object>> getChildList(Object... object) { List<Map<String, Object>> childList = new ArrayList<Map<String, Object>>(); // 引数に渡されたオブジェクトの数だけ子リストを追加 for (Object o : object) { Map<String, Object> childData = new HashMap<String, Object>(); childData.put("child_text", o); childList.add(childData); } return childList; } }長ったるいコードですが、やっている事は単純です。
1. ExpandableListViewクラスのインスタンスを生成(22行目)
⇒これが画面に表示されるリストの骨格です。
名前の通りListViewを継承しています。
2. SimpleExpandableListAdapterクラスのインスタンスを生成(42行目)
⇒ExpandableListViewに値をセットする為のアダプタ。
親リストと子リストをコンストラクタで渡してやる事で、
階層表示を可能にします。
3. ExpandableListViewにSimpleExpandableListAdapterをセット(55行目)
⇒作成したアダプタをリストビューに設定する事で、
親リストと子リストが格納されます。
その他にクリックリスナーを設定していたり、
privateなメソッドで親リストや子リストの生成を行っていますが、
今回の主題であるリストの階層表示には直接関係ありません。。。
続いて"res/layout/main.xml"のコードです。
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/parent" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ExpandableListView android:id="@+id/list" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </LinearLayout>ここで設定しているExpandableListViewが親リストとなります。
"res/layout/row.xml"のコードです。
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/child_text" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout>TextViewが子リストの要素となります。
上記のコードを実行すると、次のように表示されます。
親リストをタップする事で子リストが表示されます。
今回は親リストに対して、子リストを2件ずつ設定しましたが、
子リストにあたるArrayListの要素数だけ表示する事が可能です。
ListViewを4回程学習してきましたが、
各パターンごとに専用のアダプタが用意されており、
使い方さえわかれば初心者のsirocoでも実装は難しくないと感じました。
色々なAPIが用意されているのもAndroidの良いところですね~
次回はアプリには大抵用意されている「設定画面」を作ってみたいと思います。
2011年11月18日金曜日
ListViewの複数行選択
ListViewのコードを載せるのも、もう3回目。
だいぶ慣れてきました。
今回はリストを複数選択できるようにします。
ポイントとなるのは次の3点です。
AndroidManifest.xmlは割愛します(いつもと一緒だから。。。)。
リストをクリックするとToastが表示されます。
(チェックボックスが選択されているのがTrueになってます。)
だいぶ慣れてきました。
今回はリストを複数選択できるようにします。
ポイントとなるのは次の3点です。
- android.R.layout.simple_list_item_multiple_choice
- Javaソースの26行目です。
- これをArrayAdapterのコンストラクタに渡すことで、チェックボックスが表示されます。
- setChoiceMode(ListView.CHOICE_MODE_MULTIPLE)
- Javaソースの37行目です。
- コメントにある通り、これを実行する事で複数選択が可能となります。
- android:choiceMode="multipleChoice"
- xmlの方の11行目。
- ここでも複数選択を指定してやります。
import android.app.Activity; import android.os.Bundle; import android.util.SparseBooleanArray; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; public class ListView03 extends Activity implements OnItemClickListener{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // ListViewで表示するデータを作成 for (int i = 0; i < mWords.length; i++) { mWords[i] = String.valueOf(i); } // リストアダプタを作成 ArrayAdapter<String> adapter = new ArrayAdapter<String>( this, android.R.layout.simple_list_item_multiple_choice, mWords); // リストアダプタをリストビューにセット mListView = (ListView) findViewById(R.id.listview); mListView.setAdapter(adapter); // ListView内部のViewがフォーカス出来ないようにする mListView.setItemsCanFocus(false); // 複数選択可能にする mListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); // クリックイベントを取得 mListView.setOnItemClickListener(this); } @Override public void onItemClick( AdapterView<?> parent, View view, int position, long id) { // 選択状態を取得する SparseBooleanArray checked = mListView.getCheckedItemPositions(); // 選択された要素をトーストで表示 String word = ""; for (int i = 0; i < mWords.length; i++) { word += mWords[i] + ":" + checked.get(i) + System.getProperty("line.separator"); } Toast.makeText(this, word, Toast.LENGTH_LONG).show(); } private ListView mListView; private String[] mWords = new String[10]; }"res/layout/main.xml"のコードは以下の通り
<linearlayout android:layout_height="fill_parent" android:layout_width="fill_parent" android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android" > <listview android:id="@+id/listview" android:layout_height="fill_parent" android:layout_width="fill_parent" android:choicemode="multipleChoice" > </linearlayout>
AndroidManifest.xmlは割愛します(いつもと一緒だから。。。)。
(チェックボックスが選択されているのがTrueになってます。)
2011年11月15日火曜日
ListViewにImageを表示
前回はListViewで各行にテキストを表示させましたが、
今回は複数のテキストやイメージ画像を表示させてみます。
複数の要素をListViewの各エントリに設定する必要がある為、
アダプタにはSimpleAdapterを使用します。
(実際のコードでは SimpleAdapterを拡張したクラスを使用しています。)
Javaコードは以下の通り
CustomAdapterクラスではListViewの要素として
row.xmlファイルの定義されたビュー情報を設定しています。
ListViewクラスでは、
表示画面の各行に表示されるテキスト&イメージをHashMapでマッピングし、
ArrayListに格納しています。
更に、HashMapを要素に持つArrayListを引数に、CustomAdapterインスタンスを生成し、
表示画面であるListViewにセットしています。
"res/layout/main.xml"のコードは以下の通り
"res/layout/row.xml"のコードは以下の通り
Listの各エントリ(ビューの1行)に設定する内容を示しています。
1行目・・・ImageView id:icon
2行目・・・TextView id:code
3行目・・・TextView id:name
上記コードで実行すると、以下の様にリスト画面にイメージが表示されます。
ListViewにイメージが表示されました。
今回は複数のテキストやイメージ画像を表示させてみます。
複数の要素をListViewの各エントリに設定する必要がある為、
アダプタにはSimpleAdapterを使用します。
(実際のコードでは SimpleAdapterを拡張したクラスを使用しています。)
Javaコードは以下の通り
import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.ListView; import android.widget.SimpleAdapter; import android.widget.TextView; public class ListView02 extends Activity{ // リストビューに表示する文字列1 String[] mCode = { "001", "002", "003", "004", "005"}; // リストビューに表示する文字列2 String[] mName = { "Itiro", "Jiro", "Saburo", "Siro", "Goro"}; // リストビューに表示するImage用配列のインスタンス生成 int[] mIcon = new int[5]; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // Image用配列にリソースIDを設定 for (int i = 0; i < 5; i++) { mIcon[i] = R.drawable.icon; } // データを格納するためのArrayListを宣言 List<HashMap<String, Object>> data = new ArrayList<HashMap<String, Object>>(); for (int i = 0; i < 5; i++) { HashMap<String, Object> map = new HashMap<String, Object>(); map.put("code", mCode[i]); map.put("name", mName[i]); map.put("icon", mIcon[i]); // 作成したmapをリストに追加 data.add(map); } // 作成したdataとカスタマイズしたレイアウト「row.xml」を // 紐付けたCustomAdapterを作成する CustomAdapter customAdapter = new CustomAdapter( this, data, R.layout.row, new String[]{"code", "name"}, new int[]{R.id.code, R.id.name} ); // 「main.xml」のListViewにSimpleAdapterをセットする ListView listView = (ListView) findViewById(R.id.listview); listView.setAdapter(customAdapter); } // SimpleAdapterを継承したCustomAdapterを作成 public class CustomAdapter extends SimpleAdapter { LayoutInflater mLayoutInflater; // コンストラクタ public CustomAdapter( Context context, List<? extends Map> data, int resource, String[] from, int[] to) { super(context, data, resource, from, to); } @SuppressWarnings("unchecked") // ジェネリクスを使用したキャストの為 @Override public View getView( int position, View convertView, ViewGroup parent) { mLayoutInflater = LayoutInflater.from(getBaseContext()); // レイアウトにrow.xmlを紐付ける convertView = mLayoutInflater.inflate(R.layout.row, parent, false); ListView listView = (ListView) parent; // 該当する位置のデータを取得する Map<String, Object> data = (Map<String, Object>) listView. getItemAtPosition(position) ; // 文字入れつ1をTextViewにセットする TextView code = (TextView) convertView. findViewById(R.id.code); code.setText((String) data.get("code")); // 文字列2をTextViewにセットする TextView name = (TextView) convertView. findViewById(R.id.name); name.setText((String) data.get("name")); // アイコンをImageViewにセットする ImageView icon = (ImageView) convertView. findViewById(R.id.icon); icon.setImageResource((Integer) data.get("icon")); return convertView; } } }
CustomAdapterクラスではListViewの要素として
row.xmlファイルの定義されたビュー情報を設定しています。
ListViewクラスでは、
表示画面の各行に表示されるテキスト&イメージをHashMapでマッピングし、
ArrayListに格納しています。
更に、HashMapを要素に持つArrayListを引数に、CustomAdapterインスタンスを生成し、
表示画面であるListViewにセットしています。
"res/layout/main.xml"のコードは以下の通り
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ListView android:id="@+id/listview" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </LinearLayout>
"res/layout/row.xml"のコードは以下の通り
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="60dip" > <ImageView android:id="@+id/icon" android:layout_width="60dip" android:layout_height="70dip" android:src="@drawable/icon" /> <TextView android:id="@+id/code" android:layout_width="100dip" android:layout_height="wrap_content" /> <TextView android:id="@+id/name" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
Listの各エントリ(ビューの1行)に設定する内容を示しています。
1行目・・・ImageView id:icon
2行目・・・TextView id:code
3行目・・・TextView id:name
上記コードで実行すると、以下の様にリスト画面にイメージが表示されます。
ListViewにイメージが表示されました。
2011年11月13日日曜日
ListViewの表示
少し開発っぽい事も書いてみます。
ListViewについて。
ListViewとは、Androidでリストを表示させる場合に使用するクラスで、
よく使われるクラスの一つです。
今回はArrayAdapterクラスを使用してリスト表示する、
一般的なパターンを行ってみました。
Javaコードは以下の通り
"res/layout/main.xml"のコードは以下の通り
上記コードで実行すると、リスト画面が表示されます。
今回はテキストのみの表示でしたが、imageなどを表示させる事も可能です。
ListViewについて。
ListViewとは、Androidでリストを表示させる場合に使用するクラスで、
よく使われるクラスの一つです。
今回はArrayAdapterクラスを使用してリスト表示する、
一般的なパターンを行ってみました。
Javaコードは以下の通り
import android.app.Activity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.ListView; public class ListView01 extends Activity { // リストビューに表示するデータ String[] mLists = { "aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "jjj", "iii"}; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // アダプタを用意して配列mListsを紐付ける ArrayAdapter<String> listAdapter = new ArrayAdapter<String>( this, android.R.layout.simple_list_item_1, mLists); // main.xmlで定義したListViewにlistAdapterを設定 ListView listView = (ListView) findViewById(R.id.listview); listView.setAdapter(listAdapter); } }
"res/layout/main.xml"のコードは以下の通り
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ListView android:id="@+id/listview" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </LinearLayout>
上記コードで実行すると、リスト画面が表示されます。
今回はテキストのみの表示でしたが、imageなどを表示させる事も可能です。
2011年11月10日木曜日
ドット絵とsirocoの由来
sirocoは趣味でドット絵をやっています。
ドット絵とはゲーム(FCとかSFC)とかで良く使われていた技法で、
1ピクセルずつ点(ドット)を打っていって絵にする事を言います。
最近はしてなかったけど、Blogを初めて、
「幻夢桜白子」の名前を使う事にしたから、
久々にやってみました。
こんな感じ。
見たらイメージがわく人もいると思います。
ついでに言うと、「幻夢桜白子」って名前はゲームの主人公に使いたかったものです。
ゲーム作る腕前は無かったので(まだ諦めてないけれど)、自分の名前として使っちゃいました(^ - ^;)
コーディングもドット絵も初心者ですが、
色々と好奇心をもって挑戦していこうと思います。
ドット絵とはゲーム(FCとかSFC)とかで良く使われていた技法で、
1ピクセルずつ点(ドット)を打っていって絵にする事を言います。
最近はしてなかったけど、Blogを初めて、
「幻夢桜白子」の名前を使う事にしたから、
久々にやってみました。
こんな感じ。
見たらイメージがわく人もいると思います。
ついでに言うと、「幻夢桜白子」って名前はゲームの主人公に使いたかったものです。
ゲーム作る腕前は無かったので(まだ諦めてないけれど)、自分の名前として使っちゃいました(^ - ^;)
コーディングもドット絵も初心者ですが、
色々と好奇心をもって挑戦していこうと思います。
2011年11月7日月曜日
パッケージ名の取得について
sirocoはAndroidアプリの公開を考えている為、
パッケージ名の取得を考えました。
Javaでは所属企業のドメイン名をトップレベルドメイン側から並べ替えて
パッケージ名にする方法が推奨されています。
sirocoの様に個人で開発をする場合、個人ドメインを持っている事は稀でしょうから、
「パッケージ名登録/利用サービス」と言うものを紹介します。
「パッケージ名登録/利用サービス」とは、Java カンファレンスのドメイン名 (java-conf.gr.jp)を
パッケージに利用する事が出来ます。
java-conf.gr.jp.XXXXXX(XXXXXXは任意の文字列)の様な感じ。
登録方法をメモしておきますので、これからアプリを公開前提で開発しようとしている人は、
参考にしてみてください。
日本インターネット協会のパッケージ名登録ページを開きます。
Step1:で、"登録"を選択して、"Next"ボタンをクリック。
Step2:で、必須事項の"パッケージ名"、"メールアドレス"、"登録者指名を"入力して
"Finish"ボタンをクリック。
因みに"登録者指名"は本名でなくてもOK見たいです(推奨は本名です)。
ここまでで仮登録が完了です。
記入したメールアドレスにメールが届いているはずなので、そちらを確認。
メール本文内のリンクから、認証ページへ。
"パッケージ名"と"認証コード"を入力して"Finish"ボタンをクリック。
("認証コード"はメール本文に記述されています。)
以上でパッケージ名の登録完了です。
パッケージ名の取得を考えました。
Javaでは所属企業のドメイン名をトップレベルドメイン側から並べ替えて
パッケージ名にする方法が推奨されています。
sirocoの様に個人で開発をする場合、個人ドメインを持っている事は稀でしょうから、
「パッケージ名登録/利用サービス」と言うものを紹介します。
「パッケージ名登録/利用サービス」とは、Java カンファレンスのドメイン名 (java-conf.gr.jp)を
パッケージに利用する事が出来ます。
java-conf.gr.jp.XXXXXX(XXXXXXは任意の文字列)の様な感じ。
登録方法をメモしておきますので、これからアプリを公開前提で開発しようとしている人は、
参考にしてみてください。
日本インターネット協会のパッケージ名登録ページを開きます。
Step1:で、"登録"を選択して、"Next"ボタンをクリック。
Step2:で、必須事項の"パッケージ名"、"メールアドレス"、"登録者指名を"入力して
"Finish"ボタンをクリック。
因みに"登録者指名"は本名でなくてもOK見たいです(推奨は本名です)。
ここまでで仮登録が完了です。
記入したメールアドレスにメールが届いているはずなので、そちらを確認。
メール本文内のリンクから、認証ページへ。
"パッケージ名"と"認証コード"を入力して"Finish"ボタンをクリック。
("認証コード"はメール本文に記述されています。)
以上でパッケージ名の登録完了です。
2011年11月6日日曜日
最初に作るアプリは・・・
sirocoはAndroidアプリ開発の初心者ですが、作りたいアプリは既に決まっています。
カメラ機能を使用したアプリで、アプリ名は「閃きカメラ」。
詳細の機能は今のところ秘密です。
名前の通り、カメラアプリになります。
今後はアプリ関連のメモを"Apps"ラベルに残していこうと思います。
(基礎の学習内容は"Development"ラベルに残していきます。)
カメラ機能を使用したアプリで、アプリ名は「閃きカメラ」。
詳細の機能は今のところ秘密です。
名前の通り、カメラアプリになります。
今後はアプリ関連のメモを"Apps"ラベルに残していこうと思います。
(基礎の学習内容は"Development"ラベルに残していきます。)
2011年11月4日金曜日
使っている本
2011年11月3日木曜日
開発の記録開始
はじめまして幻夢桜 白子(ユメサクラ シロコ)と言います。
名前が長いのでsirocoと書きます。
Androidアプリの開発を始めましたので、記録を残します。
基本的には自分の為の覚え書きとなりますが、
sirocoも他の方のブログを参考にする事があるので、
参考になるようでしたら使って下さい。
名前が長いのでsirocoと書きます。
Androidアプリの開発を始めましたので、記録を残します。
基本的には自分の為の覚え書きとなりますが、
sirocoも他の方のブログを参考にする事があるので、
参考になるようでしたら使って下さい。
登録:
投稿 (Atom)