<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6432728779111196799</id><updated>2024-09-06T13:15:16.582+09:00</updated><category term="Android"/><category term="Mobile"/><category term="SoftBank"/><category term="Eclipse"/><category term="Xperia"/><category term="au"/><category term="docomo"/><title type='text'>Android 奔走記</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://weide-dev.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://weide-dev.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>weide</name><uri>http://www.blogger.com/profile/13173075712624032679</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>55</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6432728779111196799.post-6705328041399465100</id><published>2010-11-01T23:50:00.004+09:00</published><updated>2010-11-01T23:55:39.516+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>Tab を作ってみた その2</title><content type='html'>XMLリソースを使わずにTabを作る場合(XMLリソース使う場合は &lt;a href=&quot;http://weide-dev.blogspot.com/2010/04/tab.html&quot;&gt;Tab を作ってみた&lt;/a&gt;)&lt;br /&gt;
Intent を指定するか，&lt;br /&gt;
TabHost.TabContentFactory インターフェースを使用する．&lt;br /&gt;
&lt;br /&gt;
TabContentFactory の public View createTabContent(String tag) を実装すると，&lt;br /&gt;
返り値の View がそのまま Tab の画面に表示される&lt;br /&gt;
&lt;br /&gt;
というわけで，Tab を作ってみる&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;サンプルコード&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;public class TabSample extends TabActivity implements TabHost.TabContentFactory {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    
    // TabHost の取得
    final TabHost tabHost = getTabHost();
    
    // アイコン付きタブ
    tabHost.addTab(tabHost.newTabSpec(&quot;tab1&quot;)
        .setIndicator(&quot;tab1&quot;, getResources().getDrawable(R.drawable.icon))
        .setContent(this));
    
    // 任意の View
    tabHost.addTab(tabHost.newTabSpec(&quot;tab2&quot;)
        .setIndicator(&quot;Views&quot;)
        .setContent(new MyTabContentFactory()));

    // Intent を起動するタブ
    tabHost.addTab(tabHost.newTabSpec(&quot;tab3&quot;)
        .setIndicator(&quot;List&quot;)
        .setContent(new Intent(this, ListViewSample.class)));
  }

  public View createTabContent(String tag) {
    final TextView tv = new TextView(this);
    tv.setText(&quot;This is &quot; + tag);
    return tv;
  }

  // TabContentFactory を実装したクラスの作成
  class MyTabContentFactory implements TabContentFactory {
    public View createTabContent(String tag) {
      // 任意の View を設定
      View view = LayoutInflater.from(TabSample.this).inflate(R.layout.views, null);
      return view;
    }  
  }
}
&lt;/pre&gt;&lt;br /&gt;
プログラムを実行すると...&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiysj-BbmbYGow23f696JLVX4i_hWEFydpqxV4U7Cr7AmQl8wnDOuUPQW5G0tQdiajL8j_lX7Na82uUzzVSDu6ECD34s3GVNn11SzR7VcFG9dQB_bMSn3nDFNqw6Au4B0rKe8XnntIRlII/s1600/TabSample.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiysj-BbmbYGow23f696JLVX4i_hWEFydpqxV4U7Cr7AmQl8wnDOuUPQW5G0tQdiajL8j_lX7Na82uUzzVSDu6ECD34s3GVNn11SzR7VcFG9dQB_bMSn3nDFNqw6Au4B0rKe8XnntIRlII/s320/TabSample.png&quot; width=&quot;213&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiA6PtQX3-ATAbPKeszddv85KKjATUtzecSJzQC4NWj6r-sDuqUEkDWDQmi2tKwebOe2a1d056GQ2K38YTix4_aMNkKx76pQDZzj8Bz3AlSNNARVHIAknGQKsPNuG_6XBvkF8bpBEYdGB8/s1600/TabSample2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiA6PtQX3-ATAbPKeszddv85KKjATUtzecSJzQC4NWj6r-sDuqUEkDWDQmi2tKwebOe2a1d056GQ2K38YTix4_aMNkKx76pQDZzj8Bz3AlSNNARVHIAknGQKsPNuG_6XBvkF8bpBEYdGB8/s320/TabSample2.png&quot; width=&quot;213&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGxPnIX5cB4OKr_5b6T4bCo7iEK2JrZDRgOsHGX1Qr6PsFpphE6eFH2h63IyXofJquWLLEtYeWh4Hp4RAFo2-RnpOKLhRTV5oZWM2k_FgP0t_o4r4eLEZGY1miiRrBo2gEHD-OgX3s2qM/s1600/TabSample3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGxPnIX5cB4OKr_5b6T4bCo7iEK2JrZDRgOsHGX1Qr6PsFpphE6eFH2h63IyXofJquWLLEtYeWh4Hp4RAFo2-RnpOKLhRTV5oZWM2k_FgP0t_o4r4eLEZGY1miiRrBo2gEHD-OgX3s2qM/s320/TabSample3.png&quot; width=&quot;213&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
こんな感じ!&lt;br /&gt;
&lt;br /&gt;
参考サイト&lt;br /&gt;
&lt;a href=&quot;http://developer.android.com/intl/ja/reference/android/widget/TabHost.TabContentFactory.html&quot;&gt;http://developer.android.com/intl/ja/reference/android/widget/TabHost.TabContentFactory.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://weide-dev.blogspot.com/feeds/6705328041399465100/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://weide-dev.blogspot.com/2010/11/tab2.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/6705328041399465100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/6705328041399465100'/><link rel='alternate' type='text/html' href='http://weide-dev.blogspot.com/2010/11/tab2.html' title='Tab を作ってみた その2'/><author><name>weide</name><uri>http://www.blogger.com/profile/13173075712624032679</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiysj-BbmbYGow23f696JLVX4i_hWEFydpqxV4U7Cr7AmQl8wnDOuUPQW5G0tQdiajL8j_lX7Na82uUzzVSDu6ECD34s3GVNn11SzR7VcFG9dQB_bMSn3nDFNqw6Au4B0rKe8XnntIRlII/s72-c/TabSample.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6432728779111196799.post-5350625212469018735</id><published>2010-09-20T23:03:00.001+09:00</published><updated>2010-09-21T08:20:04.143+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>ListPreference を使ってみた</title><content type='html'>ListPreference は&lt;br /&gt;
&lt;pre&gt;java.lang.Object
  ↳ android.preference.Preference
    ↳ android.preference.DialogPreference
      ↳ android.preference.ListPreference
&lt;/pre&gt;を使います&lt;br /&gt;
&lt;br /&gt;
List の Dialog を表示させる Preference の一つで&lt;br /&gt;
String型の値を SharedPreferences に保存します&lt;br /&gt;
&lt;br /&gt;
というわけで，ListPreference をいじってみた&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;サンプルコード&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;public class EditTextPreferenceSample extends PreferenceActivity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // addPreferencesFromResource(R.xml.edittext_preference);

    PreferenceScreen ps = getPreferenceManager().createPreferenceScreen(this);

    PreferenceCategory pc = new PreferenceCategory(this);
    pc.setTitle(R.string.title_category);
    ps.addPreference(pc);

    EditTextPreference editTextPreference = new EditTextPreference(this);
    editTextPreference.setKey(getString(R.string.key_edittext_preference));
    editTextPreference.setTitle(R.string.title_edittext_preference);
    editTextPreference.setSummary(R.string.summary_edittext_preference);
    editTextPreference.setDialogTitle(R.string.dialog_title_edittext_preference);
    editTextPreference.setDialogMessage(R.string.dialog_message_edittext_preference);

    pc.addPreference(editTextPreference);
    setPreferenceScreen(ps);
  }
}
&lt;/pre&gt;&lt;br /&gt;
プログラムを実行すると...&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKCwI8h_tMW9ae4dOnuiHb6Wip7D70AJbZd9uk41IVTaBjUEKYcQVOlgGdlb1vYFMtXSFuPTuPSle17S_hGM9-28ZLgIquR3VxmRmhM-e-vLAYwMNPCXrTv2W7SUPGEMpNMcW16P97bQk/s1600/list_preference.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKCwI8h_tMW9ae4dOnuiHb6Wip7D70AJbZd9uk41IVTaBjUEKYcQVOlgGdlb1vYFMtXSFuPTuPSle17S_hGM9-28ZLgIquR3VxmRmhM-e-vLAYwMNPCXrTv2W7SUPGEMpNMcW16P97bQk/s320/list_preference.png&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrytGTcbJwWv_TfA3IyCA2YhGBJwS21NFwNq9yU2r3WEmpo09BHVkOiomOIqeL5283ijVn2k7u1kN-Lqjc1aPWQS29JfkNZQCYEgVAwifTZUC-suRBCTbMlI-dCSvnYEwb5JNX0O0U5UI/s1600/list_preference_dialog.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrytGTcbJwWv_TfA3IyCA2YhGBJwS21NFwNq9yU2r3WEmpo09BHVkOiomOIqeL5283ijVn2k7u1kN-Lqjc1aPWQS29JfkNZQCYEgVAwifTZUC-suRBCTbMlI-dCSvnYEwb5JNX0O0U5UI/s320/list_preference_dialog.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
こんな感じ!&lt;br /&gt;
&lt;br /&gt;
XML で一括で作成することもできます&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;サンプルコード&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;public class ListPreferenceSample extends PreferenceActivity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // XML で Preference を設定
    addPreferencesFromResource(R.xml.list_preference);

    // ListPreference の取得
    ListPreference listPreferrence = 
      (ListPreference) findPreference(
          getString(R.string.key_list_preference));
  }  
}
&lt;/pre&gt;&lt;br /&gt;
&lt;b&gt;List_preference.xml&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;PreferenceScreen 
  xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&amp;gt;
  &amp;lt;PreferenceCategory 
    android:title=&quot;@string/title_category&quot;&amp;gt;
    &amp;lt;ListPreference 
      android:key=&quot;@string/key_list_preference&quot;
      android:title=&quot;@string/title_list_preference&quot; 
      android:summaryOn=&quot;@string/summary_list_preference&quot;
      android:entries=&quot;@array/entries_list_preference&quot; 
      android:entryValues=&quot;@array/entryvalues_list_preference&quot;
      android:dialogTitle=&quot;@string/dialog_title_list_preference&quot; /&amp;gt;
  &amp;lt;/PreferenceCategory&amp;gt;
&amp;lt;/PreferenceScreen&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
参考サイト&lt;br /&gt;
&lt;a href=&quot;http://developer.android.com/intl/ja/reference/android/preference/ListPreference.html&quot;&gt;http://developer.android.com/intl/ja/reference/android/preference/ListPreference.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://weide-dev.blogspot.com/feeds/5350625212469018735/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://weide-dev.blogspot.com/2010/09/listpreference.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/5350625212469018735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/5350625212469018735'/><link rel='alternate' type='text/html' href='http://weide-dev.blogspot.com/2010/09/listpreference.html' title='ListPreference を使ってみた'/><author><name>weide</name><uri>http://www.blogger.com/profile/13173075712624032679</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKCwI8h_tMW9ae4dOnuiHb6Wip7D70AJbZd9uk41IVTaBjUEKYcQVOlgGdlb1vYFMtXSFuPTuPSle17S_hGM9-28ZLgIquR3VxmRmhM-e-vLAYwMNPCXrTv2W7SUPGEMpNMcW16P97bQk/s72-c/list_preference.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6432728779111196799.post-4730634465393742289</id><published>2010-09-19T23:02:00.001+09:00</published><updated>2010-09-21T08:19:54.626+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>EditTextPreference を使ってみた</title><content type='html'>EditTextPreference は&lt;br /&gt;
&lt;pre&gt;java.lang.Object
  ↳ android.preference.Preference
    ↳ android.preference.DialogPreference
      ↳ android.preference.EditTextPreference
&lt;/pre&gt;を使います&lt;br /&gt;
&lt;br /&gt;
EditText を Dialog 上で表示させる Preference の一つで&lt;br /&gt;
String型の値を SharedPreferences に保存します&lt;br /&gt;
&lt;br /&gt;
というわけで，EditTextPreference をいじってみた&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;サンプルコード&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;public class EditTextPreferenceSample extends PreferenceActivity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    PreferenceScreen ps = getPreferenceManager().createPreferenceScreen(this);

    PreferenceCategory pc = new PreferenceCategory(this);
    pc.setTitle(R.string.title_category);
    ps.addPreference(pc);

    EditTextPreference editTextPreference = new EditTextPreference(this);
    editTextPreference.setKey(getString(R.string.key_edittext_preference));
    editTextPreference.setTitle(R.string.title_edittext_preference);
    editTextPreference.setSummary(R.string.summary_edittext_preference);
    editTextPreference.setDialogTitle(R.string.dialog_title_edittext_preference);
    editTextPreference.setDialogMessage(R.string.dialog_message_edittext_preference);

    pc.addPreference(editTextPreference);
    setPreferenceScreen(ps);
  }
}
&lt;/pre&gt;&lt;br /&gt;
プログラムを実行すると...&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjswAd2I9RnRKJnZE9wCPX_SK5_JYnych3Op8v6xIIDo188FJuqfyUCQWTPd3lJ_deKBYnfcFkQrjDFg5chwWKpajNQfKu6p-VnlphE2Mrw9CERV3pjReKiSr3NO5FW-UYGcyA3D8aOPPg/s1600/edittext_preference.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjswAd2I9RnRKJnZE9wCPX_SK5_JYnych3Op8v6xIIDo188FJuqfyUCQWTPd3lJ_deKBYnfcFkQrjDFg5chwWKpajNQfKu6p-VnlphE2Mrw9CERV3pjReKiSr3NO5FW-UYGcyA3D8aOPPg/s320/edittext_preference.png&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSPO4ZbjkEuJ2Qa7mU-OSTtFNgj2De5EV7Qzfjc_ubzkO-kweBwhArmIDCWZXZ1p6lU3lq9SDaLO4wqeBsKmUI-ud636jfnKEF17HYJdiO_tt1g7JsNcgcuDxWUN2xl9XYFxnufCaK4LM/s1600/edittext_preference_dialog.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSPO4ZbjkEuJ2Qa7mU-OSTtFNgj2De5EV7Qzfjc_ubzkO-kweBwhArmIDCWZXZ1p6lU3lq9SDaLO4wqeBsKmUI-ud636jfnKEF17HYJdiO_tt1g7JsNcgcuDxWUN2xl9XYFxnufCaK4LM/s320/edittext_preference_dialog.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
こんな感じ!&lt;br /&gt;
&lt;br /&gt;
XML で一括で作成することもできます&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;サンプルコード&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;public class EditTextPreferenceSample extends PreferenceActivity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // XML で Preference を設定
    addPreferencesFromResource(R.xml.edittext_preference);

    // EditTextPreference の取得
    EditTextPreference editTextPreferrence = 
      (EditTextPreference) findPreference(
          getString(R.string.key_edittext_preference));
  }  
}
&lt;/pre&gt;&lt;br /&gt;
&lt;b&gt;edittext_preference.xml&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;PreferenceScreen 
  xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&amp;gt;
  &amp;lt;PreferenceCategory 
    android:title=&quot;@string/title_category&quot;&amp;gt;
    &amp;lt;EditTextPreference 
      android:key=&quot;@string/key_edittext_preference&quot;
      android:title=&quot;@string/title_edittext_preference&quot; 
      android:summary=&quot;@string/summary_edittext_preference&quot;
      android:dialogTitle=&quot;@string/dialog_title_edittext_preference&quot; /&amp;gt;
  &amp;lt;/PreferenceCategory&amp;gt;
&amp;lt;/PreferenceScreen&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
参考サイト&lt;br /&gt;
&lt;a href=&quot;http://developer.android.com/intl/ja/reference/android/preference/EditTextPreference.html&quot;&gt;http://developer.android.com/intl/ja/reference/android/preference/EditTextPreference.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://weide-dev.blogspot.com/feeds/4730634465393742289/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://weide-dev.blogspot.com/2010/09/edittextpreference.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/4730634465393742289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/4730634465393742289'/><link rel='alternate' type='text/html' href='http://weide-dev.blogspot.com/2010/09/edittextpreference.html' title='EditTextPreference を使ってみた'/><author><name>weide</name><uri>http://www.blogger.com/profile/13173075712624032679</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjswAd2I9RnRKJnZE9wCPX_SK5_JYnych3Op8v6xIIDo188FJuqfyUCQWTPd3lJ_deKBYnfcFkQrjDFg5chwWKpajNQfKu6p-VnlphE2Mrw9CERV3pjReKiSr3NO5FW-UYGcyA3D8aOPPg/s72-c/edittext_preference.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6432728779111196799.post-8673820503468893011</id><published>2010-09-18T23:01:00.001+09:00</published><updated>2010-09-18T23:04:45.231+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>CheckBoxPreference を使ってみた</title><content type='html'>CheckBoxPreference は&lt;br /&gt;
&lt;pre&gt;java.lang.Object
  ↳ android.preference.Preference
    ↳ android.preference.CheckBoxPreference
&lt;/pre&gt;を使います&lt;br /&gt;
&lt;br /&gt;
checkbox の機能を持つ Preference の一つで&lt;br /&gt;
boolean型の値を SharedPreferences に保存します&lt;br /&gt;
&lt;br /&gt;
というわけで，CheckBoxPreference をいじってみた&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;サンプルコード&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;public class CheckBoxPreferenceSample extends PreferenceActivity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    
    CheckBoxPreference checkBoxPreference = new CheckBoxPreference(this);

    // Key の設定
    checkBoxPreference.setKey(getString(R.string.key_checkbox_preference));
    // Title の設定
    checkBoxPreference.setTitle(R.string.title_checkbox_preference);

    // サマリーを設定
    //checkBoxPreference.setSummary(R.string.summary_checkbox_preference);
    // CheckBox が On の時のサマリーを設定
    checkBoxPreference.setSummaryOn(&quot;Summary On&quot;);
    // CheckBox が Off の時のサマリーを設定
    checkBoxPreference.setSummaryOff(&quot;Summary Off&quot;);

    // PrefenceScreen &amp;amp; PreferenceCategory
    PreferenceScreen ps = getPreferenceManager().createPreferenceScreen(this);
    PreferenceCategory pc = new PreferenceCategory(this);
    // PreferenceCategory のタイトルを設定
    pc.setTitle(R.string.title_category);
    // PreferenceCategory を PreferenceScreen に追加
    ps.addPreference(pc);
    // Preference を PreferenceCategory に追加
    pc.addPreference(checkBoxPreference);
    // PreferenceScrren の設定
    setPreferenceScreen(ps);

    // Preference がチェックされているか
    checkBoxPreference.isChecked();
    // チェック状態を変更
    //checkBoxPreference.setChecked(true);

    // Preference が変更されたときに呼び出されるコールバックの登録
    checkBoxPreference.setOnPreferenceChangeListener(
        new OnPreferenceChangeListener() {
          @Override
          public boolean onPreferenceChange(
              Preference preference,
              Object newValue) {
            // Preference が変更されたときの動作
            return true;
          }    
        });
  }  
}
&lt;/pre&gt;&lt;br /&gt;
プログラムを実行すると...&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh53z0sgu-JeSIayRWcbd_4f-ajWbCIZp8ZRDq6WsSFbL8iW_JUr9G3ohQHvsUP8Q0mW41WUgRia4xxuHmU1JNVJnKppgAI2d3DwMR6e_dgiHPmyHYd4XodHalZMWnQpSdFRa6ouAwMTTA/s1600/checkboxpreference_off.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh53z0sgu-JeSIayRWcbd_4f-ajWbCIZp8ZRDq6WsSFbL8iW_JUr9G3ohQHvsUP8Q0mW41WUgRia4xxuHmU1JNVJnKppgAI2d3DwMR6e_dgiHPmyHYd4XodHalZMWnQpSdFRa6ouAwMTTA/s320/checkboxpreference_off.png&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTFaTC5R0Zfr8b7EVGNLlHqfRKIMvgLuvh99IGfHCXiAdIwCepbnWwrPHO4eKRBgHAlbYBFYBFrZhmgKywmgD9qrMVtHhQY5cTyNc_44MZyxME43_ntgbLLJIL9xz-rtGfRa6TeMq_ohs/s1600/checkboxpreference_on.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTFaTC5R0Zfr8b7EVGNLlHqfRKIMvgLuvh99IGfHCXiAdIwCepbnWwrPHO4eKRBgHAlbYBFYBFrZhmgKywmgD9qrMVtHhQY5cTyNc_44MZyxME43_ntgbLLJIL9xz-rtGfRa6TeMq_ohs/s320/checkboxpreference_on.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
こんな感じ!&lt;br /&gt;
&lt;br /&gt;
XML で一括で作成することもできます&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;サンプルコード&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;public class CheckBoxPreferenceSample extends PreferenceActivity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // XML で Preference を設定
    addPreferencesFromResource(R.xml.checkbox_preference);

    // CheckBoxPreference の取得
    CheckBoxPreference checkBoxPreferrence = 
      (CheckBoxPreference) findPreference(
          getString(R.string.key_checkbox_preference));
  }  
}
&lt;/pre&gt;&lt;br /&gt;
&lt;b&gt;checkbox_preference.xml&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;PreferenceScreen 
  xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&amp;gt;
  &amp;lt;PreferenceCategory 
    android:title=&quot;@string/title_category&quot;&amp;gt;
    &amp;lt;CheckBoxPreference 
      android:key=&quot;@string/key_checkbox_preference&quot;
      android:title=&quot;@string/title_checkbox_preference&quot; 
      android:summaryOn=&quot;@string/summary_on_checkbox_preference&quot;
      android:summaryOff=&quot;@string/summary_off_checkbox_preference&quot; /&amp;gt;
      &amp;lt;!-- android:summary=&quot;@string/summary_checkbox_preference&quot; --&amp;gt;
  &amp;lt;/PreferenceCategory&amp;gt;
&amp;lt;/PreferenceScreen&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
参考サイト&lt;br /&gt;
&lt;a href=&quot;http://developer.android.com/intl/ja/reference/android/preference/CheckBoxPreference.html&quot;&gt;http://developer.android.com/intl/ja/reference/android/preference/CheckBoxPreference.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://weide-dev.blogspot.com/feeds/8673820503468893011/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://weide-dev.blogspot.com/2010/09/checkboxpreference.html#comment-form' title='1 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/8673820503468893011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/8673820503468893011'/><link rel='alternate' type='text/html' href='http://weide-dev.blogspot.com/2010/09/checkboxpreference.html' title='CheckBoxPreference を使ってみた'/><author><name>weide</name><uri>http://www.blogger.com/profile/13173075712624032679</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh53z0sgu-JeSIayRWcbd_4f-ajWbCIZp8ZRDq6WsSFbL8iW_JUr9G3ohQHvsUP8Q0mW41WUgRia4xxuHmU1JNVJnKppgAI2d3DwMR6e_dgiHPmyHYd4XodHalZMWnQpSdFRa6ouAwMTTA/s72-c/checkboxpreference_off.png" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6432728779111196799.post-1780310041972463442</id><published>2010-09-16T23:09:00.017+09:00</published><updated>2010-09-18T23:00:02.938+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>SharedPreferences を使ってみた</title><content type='html'>Preference は Androidアプリでデータを保存する方法のひとつ&lt;br /&gt;
データをキーと値の組み合わせで保存します.&lt;br /&gt;
&lt;br /&gt;
ファイルなどに保存するよりも非常に簡単にデータを保存できます&lt;br /&gt;
&lt;br /&gt;
今回は SharedPreferences を...&lt;br /&gt;
&lt;br /&gt;
SharedPreferences はまず &lt;br /&gt;
getSharedPreferences(String name, int mode);&lt;br /&gt;
でを取得してきます&lt;br /&gt;
name は Preference 自体の名前を指定します&lt;br /&gt;
mode には&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Activity.MODE_PRIVATE&lt;/li&gt;
&lt;li&gt;Activity.MODE_WORLD_READABLE&lt;/li&gt;
&lt;li&gt;Activity.MODE_WORLD_WRITEABLE&lt;/li&gt;
&lt;/ul&gt;などを指定します.&lt;br /&gt;
&lt;br /&gt;
保存された Preference は data/data/パッケージ名/shared_prefs&lt;br /&gt;
の中に xmlファイルとして保存されるようです&lt;br /&gt;
&lt;br /&gt;
取得する時は&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;getString(String key, String defValue);&lt;/li&gt;
&lt;li&gt;getInt(String key, int defValue);&lt;/li&gt;
&lt;li&gt;getLong(String key, long defValue);&lt;/li&gt;
... &lt;/ul&gt;などを使って取得して着ます&lt;br /&gt;
&lt;br /&gt;
というわけで，Preference を使ってみた&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;サンプルコード&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;public class PreferencesTest extends Activity implements OnClickListener {
  private static final String PREF_KEY = &quot;preferenceTest&quot;;
  private static final String KEY_TEXT = &quot;text&quot;;

  SharedPreferences pref;
  SharedPreferences.Editor editor;

  EditText mEditText;
  
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.preferencestest);

    // SharedPrefernces の取得
    pref = getSharedPreferences(PREF_KEY, Activity.MODE_PRIVATE);

    mEditText = (EditText) findViewById(R.id.EditText);

    Button button;
    button = (Button) findViewById(R.id.Button);
    button.setOnClickListener(this);
    
    TextView textView;
    textView = (TextView) findViewById(R.id.TextView);
    // SharedPreferences よりデータを取得
    textView.setText(pref.getString(KEY_TEXT, &quot;No Data&quot;));
  }

  public void onClick(View v) {
    if (v.getId() == R.id.Button) {
      // Editor の設定
      editor = pref.edit();
      // Editor に値を代入
      editor.putString(
          KEY_TEXT,
          mEditText.getText().toString()
      );
      // データの保存
      editor.commit();
    }
  }
}
&lt;/pre&gt;&lt;br /&gt;
プログラムを実行すると...&lt;br /&gt;
&lt;br /&gt;
保存して...&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgErVfSgG3Cf21QTd7sxvPQdy_AgYgm-7DTIE344lcSK6x18SOyWMwqN5kX4lRrTH9BUPDm9HApNsrgD_8UlkqDjdn37hDphdMYjWjXj4ewfvKx37KNhABa5eH-gL8pezbjcRo9Yn9T4-I/s1600/preferencetest2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgErVfSgG3Cf21QTd7sxvPQdy_AgYgm-7DTIE344lcSK6x18SOyWMwqN5kX4lRrTH9BUPDm9HApNsrgD_8UlkqDjdn37hDphdMYjWjXj4ewfvKx37KNhABa5eH-gL8pezbjcRo9Yn9T4-I/s320/preferencetest2.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
再び起動&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGMhtFgSF5BPxN_KgfMjp6C6D5C7mBIqX00_CZC04CsF-GQhzA8q0Usm2FPc_cAcEOpFqA5ZdeliwvgKqWlSRRJhq1dtWFK7CvFuP0T-K3Xibl8jdffOcv3BmtrpnnD4MtNVoMa5tadTo/s1600/preferencetest3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGMhtFgSF5BPxN_KgfMjp6C6D5C7mBIqX00_CZC04CsF-GQhzA8q0Usm2FPc_cAcEOpFqA5ZdeliwvgKqWlSRRJhq1dtWFK7CvFuP0T-K3Xibl8jdffOcv3BmtrpnnD4MtNVoMa5tadTo/s320/preferencetest3.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
こんな感じ!&lt;br /&gt;
&lt;br /&gt;
ちなみに保存された Preference は&lt;br /&gt;
&lt;b&gt;preferencetest.xml&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;&amp;lt;map&amp;gt;
&amp;lt;string name=&quot;text&quot;&amp;gt;Test&amp;lt;/string&amp;gt;
&amp;lt;/map&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
参考サイト&lt;br /&gt;
&lt;a href=&quot;http://developer.android.com/intl/ja/reference/android/content/SharedPreferences.html&quot;&gt;http://developer.android.com/intl/ja/reference/android/content/SharedPreferences.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://weide-dev.blogspot.com/feeds/1780310041972463442/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://weide-dev.blogspot.com/2010/09/sharedpreferences.html#comment-form' title='1 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/1780310041972463442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/1780310041972463442'/><link rel='alternate' type='text/html' href='http://weide-dev.blogspot.com/2010/09/sharedpreferences.html' title='SharedPreferences を使ってみた'/><author><name>weide</name><uri>http://www.blogger.com/profile/13173075712624032679</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgErVfSgG3Cf21QTd7sxvPQdy_AgYgm-7DTIE344lcSK6x18SOyWMwqN5kX4lRrTH9BUPDm9HApNsrgD_8UlkqDjdn37hDphdMYjWjXj4ewfvKx37KNhABa5eH-gL8pezbjcRo9Yn9T4-I/s72-c/preferencetest2.png" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6432728779111196799.post-6405848148076847364</id><published>2010-09-16T00:56:00.006+09:00</published><updated>2010-09-16T13:08:45.786+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>Wallpaper を替えてみた</title><content type='html'>壁紙を替えるには WallpaperManager を使用します&lt;br /&gt;
&lt;br /&gt;
替え方は&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;setBitmap(Bitmap bitmap)&lt;/li&gt;
&lt;li&gt;setResource(int resid)&lt;/li&gt;
&lt;li&gt;setStream(InputStream data)&lt;/li&gt;
&lt;/ul&gt;の三つから指定します&lt;br /&gt;
&lt;br /&gt;
まず AndroidManifest でパーミッションを設定する必要があります&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;AndroidManifest.xml&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;manifest xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
  ... &amp;gt;
    ・
    ・
    ・
  &amp;lt;uses-permission 
    android:name=&quot;android.permission.SET_WALLPAPER&quot; /&amp;gt;
&amp;lt;/manifest&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
&lt;b&gt;サンプルコード&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;public class WallpaperSample extends Activity implements OnClickListener {
  WallpaperManager mWM;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.wallpaper_sample);

    Button button;
    button = (Button) findViewById(R.id.Button_Set);
    button.setOnClickListener(this);
    button = (Button) findViewById(R.id.Button_Clear);
    button.setOnClickListener(this);

    // WindowManager の取得
    mWM = WallpaperManager.getInstance(this);

    // 壁紙の最小の幅，最小の高さの取得
    int width = mWM.getDesiredMinimumWidth();
    int height = mWM.getDesiredMinimumHeight();
  }

  @Override
  public void onClick(View v) {
    switch(v.getId()) {
    case R.id.Button_Set:
      try {
        // 壁紙をリソースから設定
        mWM.setResource(R.drawable.icon);
      } catch (IOException e) {
        e.printStackTrace();
      }
      break;
    case R.id.Button_Clear:
      try {
        // 壁紙をデフォルトに戻す
        mWM.clear();
      } catch (IOException e) {
        e.printStackTrace();
      }
      break;
    }
  }
}
&lt;/pre&gt;&lt;br /&gt;
プログラムを実行すると...&lt;br /&gt;
&lt;br /&gt;
変更前&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOTqPzIZzqRtzDs7G8J4pNfMqV57zcMgrH7JLboiOp-rF5h2yvQ4VqbuoHJ8KfLUHHe8Pb_-4-peeZJSASt1eseUUx5hckgGNLoszvNdve08_JACFY3rM2fvKBNpg43-oMklUAtd5Nbq4/s1600/wallpapermanager.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOTqPzIZzqRtzDs7G8J4pNfMqV57zcMgrH7JLboiOp-rF5h2yvQ4VqbuoHJ8KfLUHHe8Pb_-4-peeZJSASt1eseUUx5hckgGNLoszvNdve08_JACFY3rM2fvKBNpg43-oMklUAtd5Nbq4/s320/wallpapermanager.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;変更後&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWLU6Zk8godWLV3V1D4ibtrYqmO3bE9oUTqjU7FWMPNZawOYuNpeoBlU95Lh-XOr-yUlrQUkklwfV3u8A8mTg4o8pV-F3DE-ANn6AW4LecNHI98htjYr2WZyMek2GZibbanzBxvKpk7b4/s1600/wallpapermanager.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWLU6Zk8godWLV3V1D4ibtrYqmO3bE9oUTqjU7FWMPNZawOYuNpeoBlU95Lh-XOr-yUlrQUkklwfV3u8A8mTg4o8pV-F3DE-ANn6AW4LecNHI98htjYr2WZyMek2GZibbanzBxvKpk7b4/s320/wallpapermanager.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
こんな感じ!&lt;br /&gt;
&lt;br /&gt;
Activity の背景を壁紙にしたいときは&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;&amp;lt;activity 
  android:name=&quot;.activity.WallpaperSample&quot;
  android:theme=&quot;@android:style/Theme.Wallpaper&quot;&amp;gt;
&lt;/pre&gt;とテーマを指定すればOK&lt;br /&gt;
&lt;br /&gt;
ちなみに&lt;br /&gt;
API 2.0以前ではできないので注意!&lt;br /&gt;
下記の方法で設定するようです&lt;br /&gt;
int width = getWallpaperDesiredMinimumWidth();&lt;br /&gt;
int height = getWallpaperDesiredMinimumHeight();&lt;br /&gt;
setWallpaper(Bitmap or InputStream);&lt;br /&gt;
clearWallpaper();&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
参考サイト&lt;br /&gt;
&lt;a href=&quot;http://developer.android.com/intl/ja/reference/android/app/WallpaperManager.html&quot;&gt;http://developer.android.com/intl/ja/reference/android/app/WallpaperManager.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://weide-dev.blogspot.com/feeds/6405848148076847364/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://weide-dev.blogspot.com/2010/09/wallpapermanager.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/6405848148076847364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/6405848148076847364'/><link rel='alternate' type='text/html' href='http://weide-dev.blogspot.com/2010/09/wallpapermanager.html' title='Wallpaper を替えてみた'/><author><name>weide</name><uri>http://www.blogger.com/profile/13173075712624032679</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOTqPzIZzqRtzDs7G8J4pNfMqV57zcMgrH7JLboiOp-rF5h2yvQ4VqbuoHJ8KfLUHHe8Pb_-4-peeZJSASt1eseUUx5hckgGNLoszvNdve08_JACFY3rM2fvKBNpg43-oMklUAtd5Nbq4/s72-c/wallpapermanager.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6432728779111196799.post-7077570955652857259</id><published>2010-08-31T23:25:00.002+09:00</published><updated>2010-09-01T09:30:04.557+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>ExpandableListView を使ってみた</title><content type='html'>ExpandableListView は&lt;br /&gt;
&lt;pre&gt;java.lang.Object
  ↳ android.view.View
    ↳ android.view.ViewGroup
      ↳ android.widget.AdapterView&amp;lt;T extends android.widget.Adapter&amp;gt;
        ↳ android.widget.AbsListView
          ↳ android.widget.ListView
            ↳ android.widget.ExpandableListView
&lt;/pre&gt;を使用します&lt;br /&gt;
&lt;br /&gt;
Group のリストがありそれぞれが Child のリストを保持しています.&lt;br /&gt;
Group をクリックすRと Child のリストが開き，もう一度クリックするとリストが閉じられます.&lt;br /&gt;
&lt;br /&gt;
というわけで，ExpandableListView をいじってみた.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;サンプルコード&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;public class ExpandableListViewSample extends Activity {
  private static final String KEY1 = &quot;GROUP&quot;;
  private static final String KEY2 = &quot;CHILD&quot;;

  // 表示させる文字列
  private String[] GROUPS = {&quot;Group1&quot;, &quot;Group2&quot;, &quot;Group3&quot;};
  private String[][][] CHILDREN = {
      {{&quot;Child11&quot;, &quot;Text11&quot;}}, 
      {{&quot;Child21&quot;, &quot;Text21&quot;}, {&quot;Child22&quot;, &quot;Text22&quot;}},
      {{&quot;Child31&quot;, &quot;Text31&quot;}, {&quot;Child32&quot;, &quot;Text32&quot;}, {&quot;Child33&quot;, &quot;Text33&quot;}}, 
  };

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.expandablelistview_sample);

    // 設定する文字列のリスト
    List&amp;lt;Map&amp;lt;String, String&amp;gt;&amp;gt; groupData =
        new ArrayList&amp;lt;Map&amp;lt;String, String&amp;gt;&amp;gt;();
    List&amp;lt;List&amp;lt;Map&amp;lt;String, String&amp;gt;&amp;gt;&amp;gt; childData =
        new ArrayList&amp;lt;List&amp;lt;Map&amp;lt;String, String&amp;gt;&amp;gt;&amp;gt;();

    // リストに文字列を設定していく
    for (int i = 0; i &amp;lt; GROUPS.length; i++) {
      // 親要素の追加
      Map&amp;lt;String, String&amp;gt; curGroupMap =
          new HashMap&amp;lt;String, String&amp;gt;();
      groupData.add(curGroupMap);
      curGroupMap.put(KEY1, GROUPS[i]);
      curGroupMap.put(KEY2, &quot;&quot;);

      List&amp;lt;Map&amp;lt;String, String&amp;gt;&amp;gt; children =
          new ArrayList&amp;lt;Map&amp;lt;String, String&amp;gt;&amp;gt;();
      if (CHILDREN.length &amp;gt; i) {
        for (int j = 0; j &amp;lt; CHILDREN[i].length; j++) {
          // 子要素の追加
          Map&amp;lt;String, String&amp;gt; curChildMap =
              new HashMap&amp;lt;String, String&amp;gt;();
          children.add(curChildMap);
          curChildMap.put(KEY1, CHILDREN[i][j][0]);
          curChildMap.put(KEY2, CHILDREN[i][j][1]);
        }
      }
      childData.add(children);
    }

    // ExpandbleListAdapter の作成
    ExpandableListAdapter adapter =
        new SimpleExpandableListAdapter(
            this,
            groupData,
            android.R.layout.simple_expandable_list_item_1,
            new String[] { KEY1, KEY2 },
            new int[] { android.R.id.text1, android.R.id.text2 },
            childData,
            android.R.layout.simple_expandable_list_item_2,
            new String[] { KEY1, KEY2 },
            new int[] { android.R.id.text1, android.R.id.text2 }
        );

    ExpandableListView listView = 
      (ExpandableListView) findViewById(R.id.ExpandableListView);
    // Adapter を設定
    listView.setAdapter(adapter);
    
    // グループがクリックされた時に呼び出されるコールバックを登録
    listView.setOnGroupClickListener(new OnGroupClickListener() {
      @Override
      public boolean onGroupClick(ExpandableListView parent,
          View v, int groupPosition, long id) {
        // クリックされた時の処理
        return false;
      }      
    });
    
    // グループ内の項目がクリックされた時に呼び出されるコールバックを登録
    listView.setOnChildClickListener(new OnChildClickListener() {
      @Override
      public boolean onChildClick(ExpandableListView parent, View v,
          int groupPosition, int childPosition, long id) {
        // クリックされた時の処理
        return false;
      }      
    });
  }  
}
&lt;/pre&gt;&lt;br /&gt;
さらに &lt;br /&gt;
setOnGroupCollapseListener でグループが閉じた時，&lt;br /&gt;
setOnGroupExpandListener でグループが開いた時&lt;br /&gt;
の処理もできる模様！&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;XMLリソース&lt;/b&gt; &lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
  android:orientation=&quot;vertical&quot; 
  android:layout_width=&quot;fill_parent&quot;
  android:layout_height=&quot;fill_parent&quot;&amp;gt;
  &amp;lt;TextView
    android:layout_width=&quot;fill_parent&quot;
    android:layout_height=&quot;wrap_content&quot; 
    android:text=&quot;ExpandableListViewSample&quot; /&amp;gt;
  &amp;lt;ExpandableListView 
    android:layout_width=&quot;fill_parent&quot;
    android:layout_height=&quot;0dip&quot; 
    android:layout_weight=&quot;1&quot;
    android:id=&quot;@+id/ExpandableListView&quot;&amp;gt;
  &amp;lt;/ExpandableListView&amp;gt;
&amp;lt;/LinearLayout&amp;gt;
&lt;/pre&gt;プログラムを実行すると...&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5Vu0_O1hMzdj4xhwvzZ22YgZ5HTzDhMl0dZ9Sx_WeuR2vmiuTzevsV_sW6arC8irLbW_xHRt2wb4wFb7UE3ExWHQO5XzqDwSh-98K3sKCmZC8ZoEfHF-1NFfAHyo0-e2dYTsktblwxjY/s1600/expandablelistview.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5Vu0_O1hMzdj4xhwvzZ22YgZ5HTzDhMl0dZ9Sx_WeuR2vmiuTzevsV_sW6arC8irLbW_xHRt2wb4wFb7UE3ExWHQO5XzqDwSh-98K3sKCmZC8ZoEfHF-1NFfAHyo0-e2dYTsktblwxjY/s320/expandablelistview.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
グループを開いたとき&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjg8an9wWiJVxfBVKEUJ1HA9PrmTliTEUL1Oh6c0tFyVRfS0t2oW44U1TIISuMXlKI_YlWxZl2JSydlg5Th-ECjlTk_xNM9N7gTo2DJbg9u3OCBrRbabVFi2FxfJJsmJvP2U5end8DFxjM/s1600/expandablelistview2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjg8an9wWiJVxfBVKEUJ1HA9PrmTliTEUL1Oh6c0tFyVRfS0t2oW44U1TIISuMXlKI_YlWxZl2JSydlg5Th-ECjlTk_xNM9N7gTo2DJbg9u3OCBrRbabVFi2FxfJJsmJvP2U5end8DFxjM/s320/expandablelistview2.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
こんな感じ!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
参考サイト &lt;a href=&quot;http://developer.android.com/intl/ja/reference/android/widget/ExpandableListView.html&quot;&gt;http://developer.android.com/intl/ja/reference/android/widget/ExpandableListView.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://weide-dev.blogspot.com/feeds/7077570955652857259/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://weide-dev.blogspot.com/2010/08/expandablelistview.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/7077570955652857259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/7077570955652857259'/><link rel='alternate' type='text/html' href='http://weide-dev.blogspot.com/2010/08/expandablelistview.html' title='ExpandableListView を使ってみた'/><author><name>weide</name><uri>http://www.blogger.com/profile/13173075712624032679</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5Vu0_O1hMzdj4xhwvzZ22YgZ5HTzDhMl0dZ9Sx_WeuR2vmiuTzevsV_sW6arC8irLbW_xHRt2wb4wFb7UE3ExWHQO5XzqDwSh-98K3sKCmZC8ZoEfHF-1NFfAHyo0-e2dYTsktblwxjY/s72-c/expandablelistview.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6432728779111196799.post-4560578529041926649</id><published>2010-08-26T23:42:00.011+09:00</published><updated>2010-08-27T08:03:45.882+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>ListView で MultipleChoice モード</title><content type='html'>ListView で複数選択できるような List を作ることができます．&lt;br /&gt;
&lt;br /&gt;
基本的には ListView や SingleChoice と同じ.&lt;br /&gt;
Adapter の作成時に Muliple Choice ようのレイアウトを設定するのと&lt;br /&gt;
setChoiceMode で ListView.CHOICE_MODE_MULTIPLEを設定するくらい&lt;br /&gt;
すると CheckBox 付きのリストが表示されます.&lt;br /&gt;
&lt;br /&gt;
というわけで，MultipleChoiceList をいじってみた.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;サンプルコード&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;public class MultipleChoiceListViewSample extends Activity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.listview_sample);
    ListView listView = (ListView)findViewById(R.id.ListView);

    // アダプタの作成
    listView.setAdapter(new ArrayAdapter&amp;lt;String&amp;gt;(
        this,
        android.R.layout.simple_list_item_multiple_choice,
        DAYS)
    );

    // フォーカスが当たらないよう設定
    listView.setItemsCanFocus(false);

    // 選択の方式の設定
    listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
    
    for (int i = 1; i &amp;lt; 6; i++) {
      // 指定したアイテムがチェックされているかを設定
      listView.setItemChecked(i, true);
    }
    
    // アイテムがクリックされたときに呼び出されるコールバックを登録
    listView.setOnItemClickListener(new OnItemClickListener() {
      @Override
      public void onItemClick(AdapterView&amp;lt;?&amp;gt; parent,
              View view, int position, long id) {
          // クリックされた時の処理
      }
    });
    
    // 現在チェックされているアイテムを取得
    // チェックされてないアイテムは含まれない模様
    SparseBooleanArray checked = listView.getCheckedItemPositions();
    for (int i = 0; i &amp;lt; checked.size(); i++) {
      // チェックされているアイテムの key の取得
      int key = checked.keyAt(i);
      Log.v(getClass().getSimpleName(), &quot;values: &quot; + DAYS[key]);
    }
  }
  
  // ListView に表示させる文字列
  private static final String[] DAYS = new String[] {
    &quot;Sunday&quot;, &quot;Monday&quot;, &quot;Tuesday&quot;, &quot;Wednesday&quot;,
    &quot;Thursday&quot;, &quot;Friday&quot;, &quot;Saturday&quot;
  };
}
&lt;/pre&gt;&lt;b&gt;XMLリソース&lt;/b&gt; &lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
  android:orientation=&quot;vertical&quot; 
  android:layout_width=&quot;fill_parent&quot;
  android:layout_height=&quot;fill_parent&quot;&amp;gt;
  &amp;lt;TextView android:layout_width=&quot;fill_parent&quot;
    android:layout_height=&quot;wrap_content&quot; 
    android:text=&quot;ListSample&quot; /&amp;gt;
  &amp;lt;ListView 
    android:layout_width=&quot;fill_parent&quot;
    android:layout_height=&quot;0dip&quot; 
    android:layout_weight=&quot;1&quot;
    android:id=&quot;@+id/ListView&quot;&amp;gt;
  &amp;lt;/ListView&amp;gt;
&amp;lt;/LinearLayout&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
実行すると...&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtF3l1pR2AtID6DRBAx6ca12iPG90KXEcL1iXfH4iUC9QNhirU-twcL_VNvfWwpyTWlFBZe00c05_7cGaK-2nYPD-3W6JGdSxM_apWVHp08FxDJsQ88rb7IaPwS3Hklea8DFFsfSskhWs/s1600/multiplehoicelistview.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtF3l1pR2AtID6DRBAx6ca12iPG90KXEcL1iXfH4iUC9QNhirU-twcL_VNvfWwpyTWlFBZe00c05_7cGaK-2nYPD-3W6JGdSxM_apWVHp08FxDJsQ88rb7IaPwS3Hklea8DFFsfSskhWs/s320/multiplehoicelistview.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
こんな感じ!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
参考サイト&lt;br /&gt;
&lt;a href=&quot;http://developer.android.com/intl/ja/reference/android/widget/ListView.html&quot;&gt;http://developer.android.com/intl/ja/reference/android/widget/ListView.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://weide-dev.blogspot.com/feeds/4560578529041926649/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://weide-dev.blogspot.com/2010/08/multiplechoicelistview.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/4560578529041926649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/4560578529041926649'/><link rel='alternate' type='text/html' href='http://weide-dev.blogspot.com/2010/08/multiplechoicelistview.html' title='ListView で MultipleChoice モード'/><author><name>weide</name><uri>http://www.blogger.com/profile/13173075712624032679</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtF3l1pR2AtID6DRBAx6ca12iPG90KXEcL1iXfH4iUC9QNhirU-twcL_VNvfWwpyTWlFBZe00c05_7cGaK-2nYPD-3W6JGdSxM_apWVHp08FxDJsQ88rb7IaPwS3Hklea8DFFsfSskhWs/s72-c/multiplehoicelistview.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6432728779111196799.post-5966557226219327634</id><published>2010-08-26T23:30:00.005+09:00</published><updated>2010-08-27T08:03:54.193+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>ListView で SingleChoice モード</title><content type='html'>ListView で一つしか選択できないような List を作ることができます．&lt;br /&gt;
&lt;br /&gt;
基本的には ListView と同じ.&lt;br /&gt;
Adapter の作成時に Single Choice ようのレイアウトを設定するのと&lt;br /&gt;
setChoiceMode で ListView.CHOICE_MODE_SINGLEを設定するくらい&lt;br /&gt;
すると RadioButton 付きのリストが表示されます.&lt;br /&gt;
&lt;br /&gt;
というわけで，SingleChoiceList をいじってみた&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;サンプルコード&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;public class SingleChoiceListViewSample extends Activity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.listview_sample);
    ListView listView = (ListView)findViewById(R.id.ListView);

    // アダプタの作成
    listView.setAdapter(new ArrayAdapter&amp;lt;String&amp;gt;(
        this,
        android.R.layout.simple_list_item_single_choice,
        SIZES)
    );  
        
    // 選択の方式の設定
    listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
  
    // 指定したアイテムがチェックされているかを設定
    listView.setItemChecked(0, true);
    
    // アイテムがクリックされた時に呼び出されるコールバックを登録
    listView.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView&amp;lt;?&amp;gt; parent,
                View view, int position, long id) {
            // クリックされた時の処理
        }
    });
  
    // 現在チェックされているアイテムの position を取得
    listView.getCheckedItemPosition();
  }
  
  // ListView に表示させる文字列
  private static final String[] SIZES = new String[] {
      &quot;XS(eXtra Small)&quot;, &quot;S(Small)&quot;, &quot;M(Medium)&quot;,
　　　&quot;L(Large)&quot;, &quot;XL(eXtra Large)&quot;
  };
}
&lt;/pre&gt;&lt;br /&gt;
&lt;b&gt;XMLリソース&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
  android:orientation=&quot;vertical&quot; 
  android:layout_width=&quot;fill_parent&quot;
  android:layout_height=&quot;fill_parent&quot;&amp;gt;
  &amp;lt;TextView android:layout_width=&quot;fill_parent&quot;
    android:layout_height=&quot;wrap_content&quot; 
    android:text=&quot;ListSample&quot; /&amp;gt;
  &amp;lt;ListView 
    android:layout_width=&quot;fill_parent&quot;
    android:layout_height=&quot;0dip&quot; 
    android:layout_weight=&quot;1&quot;
    android:id=&quot;@+id/ListView&quot;&amp;gt;
  &amp;lt;/ListView&amp;gt;
&amp;lt;/LinearLayout&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
実行すると...&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgn4jYZHm9jxHSne4iKlU7dmBSwQ_u_IeqoKwRDJJx-eTIjCKH_vd7deTiWxh9Kx_zJzLDdHm-28YQRtHmAL47hNg3oHMLQ1PuiPIT8RPi3Lg1T3ZKzZO0JI02qJ47ZJackDizKD1z5oYE/s1600/singlechoicelistview.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgn4jYZHm9jxHSne4iKlU7dmBSwQ_u_IeqoKwRDJJx-eTIjCKH_vd7deTiWxh9Kx_zJzLDdHm-28YQRtHmAL47hNg3oHMLQ1PuiPIT8RPi3Lg1T3ZKzZO0JI02qJ47ZJackDizKD1z5oYE/s320/singlechoicelistview.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
こんな感じ!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
参考サイト&lt;br /&gt;
&lt;a href=&quot;http://developer.android.com/intl/ja/reference/android/widget/ListView.html&quot;&gt;http://developer.android.com/intl/ja/reference/android/widget/ListView.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://weide-dev.blogspot.com/feeds/5966557226219327634/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://weide-dev.blogspot.com/2010/08/singlechoicelistview.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/5966557226219327634'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/5966557226219327634'/><link rel='alternate' type='text/html' href='http://weide-dev.blogspot.com/2010/08/singlechoicelistview.html' title='ListView で SingleChoice モード'/><author><name>weide</name><uri>http://www.blogger.com/profile/13173075712624032679</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgn4jYZHm9jxHSne4iKlU7dmBSwQ_u_IeqoKwRDJJx-eTIjCKH_vd7deTiWxh9Kx_zJzLDdHm-28YQRtHmAL47hNg3oHMLQ1PuiPIT8RPi3Lg1T3ZKzZO0JI02qJ47ZJackDizKD1z5oYE/s72-c/singlechoicelistview.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6432728779111196799.post-8205934430124703114</id><published>2010-05-01T01:00:00.000+09:00</published><updated>2010-05-01T17:02:49.940+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>XML で Button 変化</title><content type='html'>ボタンの変化をXMLで指定するには &lt;b&gt;selector&lt;/b&gt; というのを指定してあげます&lt;br /&gt;
state_pressed が true なら押されている&lt;br /&gt;
state_focused が true ならフォーカスがあたっている&lt;br /&gt;
状態になりそれぞれのイメージを指定します&lt;br /&gt;
&lt;br /&gt;
というわけで, XMLでボタンを変化させてみた&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;XMLリソース&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;
&amp;lt;selector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&amp;gt;
  &amp;lt;!-- 押されたときの Button --&amp;gt;
  &amp;lt;item android:drawable=&quot;@drawable/icon_pressed&quot;
        android:state_pressed=&quot;true&quot; /&amp;gt;
  &amp;lt;!-- フォーカスがあたっているときの Button --&amp;gt;
  &amp;lt;item android:drawable=&quot;@drawable/icon_focused&quot;
        android:state_focused=&quot;true&quot; /&amp;gt;
  &amp;lt;!-- 通常時の Button --&amp;gt;
  &amp;lt;item android:drawable=&quot;@drawable/icon&quot; /&amp;gt;
&amp;lt;/selector&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
んで、メインの方はただバックグラウンドに指定するだけ&lt;br /&gt;
XMLで指定してしまってもOK&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;サンプルプログラム&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;

public class ButtonXMLTest extends Activity {
  Button button;
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.buttonxmltest);
    
    button = (Button) findViewById(R.id.Button);
    button.setBackgroundResource(R.drawable.buttonxml);
  }    
}
&lt;/pre&gt;&lt;br /&gt;
プログラムを実行すると...&lt;br /&gt;
&lt;br /&gt;
通常時&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkRqVR7Q-5X6kU37VWk9U_B-eHYuNNEA1GhlGRfd4Bcm00Wg7wo1_oCiPDEBauQyrWaASjuvIngqUfRzTE-pu-qnw6gxJfvqsjob0nsdpiOlwPBkZwJS2duktQZJ09jFeAikZLANGN8cE/s1600/buttonxmltest.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkRqVR7Q-5X6kU37VWk9U_B-eHYuNNEA1GhlGRfd4Bcm00Wg7wo1_oCiPDEBauQyrWaASjuvIngqUfRzTE-pu-qnw6gxJfvqsjob0nsdpiOlwPBkZwJS2duktQZJ09jFeAikZLANGN8cE/s320/buttonxmltest.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
ボタンにフォーカスがあたったとき&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh17VTC0IDHHZGZwz-IIGCxTXSDGl67fuam6lwY2e4Ld1fmFqQ5WzJdDJqfn3_yNly7-LLiwSgSKsgr6Bwqm-pP-AJJ2ICkHulAAINwOd4zZd77Uzw_qLjFZW9eeKcoJc_m_6uYoz0RlJM/s1600/buttonxmltest2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh17VTC0IDHHZGZwz-IIGCxTXSDGl67fuam6lwY2e4Ld1fmFqQ5WzJdDJqfn3_yNly7-LLiwSgSKsgr6Bwqm-pP-AJJ2ICkHulAAINwOd4zZd77Uzw_qLjFZW9eeKcoJc_m_6uYoz0RlJM/s320/buttonxmltest2.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
ボタンが押されたとき&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9rmbADL8WrGPeSF8bGwmbb7OqDNwb_8MiDSoagYVvEGNvKuCMLZwu8vyPLK-9ZQo5gSa-ABcOXWDacfZ_WDNja4TlHkqjGzRaxtDCqAnqk82O7-a2a8mYioPsmLMzDggDd5RU9c3417c/s1600/buttonxmltest3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9rmbADL8WrGPeSF8bGwmbb7OqDNwb_8MiDSoagYVvEGNvKuCMLZwu8vyPLK-9ZQo5gSa-ABcOXWDacfZ_WDNja4TlHkqjGzRaxtDCqAnqk82O7-a2a8mYioPsmLMzDggDd5RU9c3417c/s320/buttonxmltest3.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
こんな感じ!&lt;br /&gt;
&lt;br /&gt;
参考サイト&lt;br /&gt;
&lt;a href=&quot;http://developer.android.com/intl/ja/resources/tutorials/views/hello-formstuff.html&quot;&gt;http://developer.android.com/intl/ja/resources/tutorials/views/hello-formstuff.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://weide-dev.blogspot.com/feeds/8205934430124703114/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://weide-dev.blogspot.com/2010/05/xml-button.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/8205934430124703114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/8205934430124703114'/><link rel='alternate' type='text/html' href='http://weide-dev.blogspot.com/2010/05/xml-button.html' title='XML で Button 変化'/><author><name>weide</name><uri>http://www.blogger.com/profile/13173075712624032679</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkRqVR7Q-5X6kU37VWk9U_B-eHYuNNEA1GhlGRfd4Bcm00Wg7wo1_oCiPDEBauQyrWaASjuvIngqUfRzTE-pu-qnw6gxJfvqsjob0nsdpiOlwPBkZwJS2duktQZJ09jFeAikZLANGN8cE/s72-c/buttonxmltest.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6432728779111196799.post-3348418750182494711</id><published>2010-04-28T03:28:00.000+09:00</published><updated>2010-04-29T03:29:33.552+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Mobile"/><category scheme="http://www.blogger.com/atom/ns#" term="SoftBank"/><title type='text'>ソフトバンク、『X06HT HTC Desire』発売開始</title><content type='html'>2010年4月27日より、ソフトバンクモバイル初となるAndroid搭載スマートフォン「HTC Desire SoftBank X06HT」が発売されました。&lt;br /&gt;
&lt;br /&gt;
詳しくは&lt;a href=&quot;http://www.htc.com/jp/product/x06ht/overview.html&quot;&gt;http://www.htc.com/jp/product/x06ht/overview.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://weide-dev.blogspot.com/feeds/3348418750182494711/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://weide-dev.blogspot.com/2010/04/x06ht-htc-desire_29.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/3348418750182494711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/3348418750182494711'/><link rel='alternate' type='text/html' href='http://weide-dev.blogspot.com/2010/04/x06ht-htc-desire_29.html' title='ソフトバンク、『X06HT HTC Desire』発売開始'/><author><name>weide</name><uri>http://www.blogger.com/profile/13173075712624032679</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6432728779111196799.post-490305825234745378</id><published>2010-04-27T01:39:00.000+09:00</published><updated>2010-04-27T01:39:29.714+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>MediaPlayer を使ってみた</title><content type='html'>android で mp3, midi などを再生するには&lt;br /&gt;
MediaPlayer を使います&lt;br /&gt;
&lt;br /&gt;
そして drawable/raw を作ってその中にメディアファイルを格納します&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwccYWuZQP_Q-QPfyfmThJao0xKrumMAYCRNQcokrMwl7wqaDJY6L_1ilP8xqGL1NJofxxGRmD1Z3ntT798olY00L5DjELB7LWSj6qtJ6J4HLSj1jn4ip9W7h-2-t3iOshoZ6fDRJV51o/s1600/drawable_raw.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwccYWuZQP_Q-QPfyfmThJao0xKrumMAYCRNQcokrMwl7wqaDJY6L_1ilP8xqGL1NJofxxGRmD1Z3ntT798olY00L5DjELB7LWSj6qtJ6J4HLSj1jn4ip9W7h-2-t3iOshoZ6fDRJV51o/s320/drawable_raw.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
その後, &lt;b&gt;MediaPlayer.create(context, resid);&lt;/b&gt; で作成します&lt;br /&gt;
&lt;br /&gt;
というわけで, MediaPlayer をいじってみた&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;サンプルプログラム&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MediaPlayerTest extends Activity 
                             implements OnClickListener {
  private MediaPlayer mediaPlayer = null;
  private Button button_Play;
  private Button button_Pause;
  private Button button_Stop;
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.soundtest);
    
    button_Play = (Button) findViewById(R.id.Button01);
    button_Play.setOnClickListener(this);
    button_Pause = (Button) findViewById(R.id.Button02);
    button_Pause.setOnClickListener(this);  
    button_Stop = (Button) findViewById(R.id.Button03);
    button_Stop.setOnClickListener(this);  

    // メディアプレイヤーの作成
    mediaPlayer = MediaPlayer.create(this, R.raw.sample);
    
    // ループ再生の設定
    // mediaPlayer.setLooping(true);
  }
  @Override
  public void onClick(View v) {
    if (v == button_Play) {
      // 再生してなかったら
      if (!mediaPlayer.isPlaying()) {
        // MediaPlayerの再生
        mediaPlayer.start();
      }
    } else if (v == button_Pause) {
      // MediaPlayerの一時停止
      mediaPlayer.pause();
    }
    else if (v == button_Stop) {
      // 再生してたら
      if (mediaPlayer.isPlaying()) {
        // MediaPlayerの停止
        mediaPlayer.stop();
        try {
          // MediaPlayerの準備
          mediaPlayer.prepare();
        } catch (Exception e) {}
      }
    }
  }
}
&lt;/pre&gt;&lt;br /&gt;
こんな感じ!&lt;br /&gt;
&lt;br /&gt;
参考サイト&lt;br /&gt;
&lt;a href=&quot;http://developer.android.com/intl/ja/reference/android/media/MediaPlayer.html&quot;&gt;http://developer.android.com/intl/ja/reference/android/media/MediaPlayer.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://weide-dev.blogspot.com/feeds/490305825234745378/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://weide-dev.blogspot.com/2010/04/mediaplayer.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/490305825234745378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/490305825234745378'/><link rel='alternate' type='text/html' href='http://weide-dev.blogspot.com/2010/04/mediaplayer.html' title='MediaPlayer を使ってみた'/><author><name>weide</name><uri>http://www.blogger.com/profile/13173075712624032679</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwccYWuZQP_Q-QPfyfmThJao0xKrumMAYCRNQcokrMwl7wqaDJY6L_1ilP8xqGL1NJofxxGRmD1Z3ntT798olY00L5DjELB7LWSj6qtJ6J4HLSj1jn4ip9W7h-2-t3iOshoZ6fDRJV51o/s72-c/drawable_raw.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6432728779111196799.post-2398122614684155914</id><published>2010-04-27T01:34:00.000+09:00</published><updated>2010-04-27T01:34:38.420+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>ToneGenerator を使ってみた</title><content type='html'>ToneGeneratorを使うと簡単にトーンを鳴らせます&lt;br /&gt;
コンストラクタは&lt;br /&gt;
&lt;b&gt;ToneGenerator (int streamType, int volume);&lt;/b&gt;&lt;br /&gt;
第1引数はストリームの種類&lt;br /&gt;
第2引数は音量&lt;br /&gt;
&lt;br /&gt;
んで、&lt;br /&gt;
&lt;b&gt;startTone(int ToneType)&lt;/b&gt; or &lt;b&gt;startTone(int ToneType, int durationMs)&lt;/b&gt;&lt;br /&gt;
で再生します&lt;br /&gt;
後者は再生する時間を指定&lt;br /&gt;
Toneの種類に関してはT&lt;a href=&quot;http://developer.android.com/intl/ja/reference/android/media/ToneGenerator.html&quot;&gt;oneGenerator&lt;/a&gt;から&lt;br /&gt;
&lt;br /&gt;
というわけで, ToneGenarator をいじってみた&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;サンプルプログラム&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;import android.app.Activity;
import android.media.AudioManager;
import android.media.ToneGenerator;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class ToneGeneratorTest extends Activity {
  ToneGenerator toneGenerator;
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.tonegeneratortest);

    // ToneGenerator の作成
    toneGenerator = new ToneGenerator(
        AudioManager.STREAM_ALARM,
        ToneGenerator.MAX_VOLUME
    );

    ((Button) findViewById(R.id.Button01))
    .setOnClickListener(new OnClickListener() {
      public void onClick(View v) {
        // Tone再生
        toneGenerator.startTone(ToneGenerator.TONE_CDMA_ABBR_ALERT);
        // toneGenarator.stratTone(ToneGenerator.TONE_CDMA_ABBR_ALERT, 1000);
      }
    });
    ((Button) findViewById(R.id.Button02))
    .setOnClickListener(new OnClickListener() {
      public void onClick(View v) {
        // Tone停止
        toneGenerator.stopTone();
      }
    });
  }
  
  @Override
  public void onDestroy() {
    super.onDestroy();
    
    // ToneGenerator の解放
    toneGenerator.release();
  }
}
&lt;/pre&gt;&lt;br /&gt;
こんな感じ!&lt;br /&gt;
&lt;br /&gt;
参考サイト&lt;br /&gt;
&lt;a href=&quot;http://developer.android.com/intl/ja/reference/android/media/ToneGenerator.html&quot;&gt;http://developer.android.com/intl/ja/reference/android/media/ToneGenerator.html&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://developer.android.com/intl/ja/reference/android/media/AudioManager.html&quot;&gt;http://developer.android.com/intl/ja/reference/android/media/AudioManager.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://weide-dev.blogspot.com/feeds/2398122614684155914/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://weide-dev.blogspot.com/2010/04/tonegenerator.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/2398122614684155914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/2398122614684155914'/><link rel='alternate' type='text/html' href='http://weide-dev.blogspot.com/2010/04/tonegenerator.html' title='ToneGenerator を使ってみた'/><author><name>weide</name><uri>http://www.blogger.com/profile/13173075712624032679</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6432728779111196799.post-4270469801970133097</id><published>2010-04-24T21:36:00.003+09:00</published><updated>2010-11-01T18:56:32.255+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>Tab を作ってみた</title><content type='html'>Tab を使うには TabHost と TabWidget を使います&lt;br /&gt;
そして TabWidget でTabのコンテンツを表示するのに FrameLayout を使います&lt;br /&gt;
&lt;br /&gt;
Tabのコンテンツとして 任意のViewを表示させるのと, Activityを起動する2種類があるようです&lt;br /&gt;
&lt;br /&gt;
というわけで, Tab を作ってみた&lt;br /&gt;
&lt;br /&gt;
注意するのは id として&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;TabHost は @android:id/tabhost&lt;/li&gt;
&lt;li&gt;TabWidget は @android:id/tabs&lt;/li&gt;
&lt;li&gt;メインの FrameLayout は @android:id/tabcotent&lt;/li&gt;
&lt;/ul&gt;というのを指定してあげます&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;XMLリソース&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;&amp;lt;TabHost xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
  android:id=&quot;@android:id/tabhost&quot; 
  android:layout_width=&quot;fill_parent&quot;
  android:layout_height=&quot;fill_parent&quot;&amp;gt;
  &amp;lt;LinearLayout 
    android:orientation=&quot;vertical&quot;
    android:layout_width=&quot;fill_parent&quot; 
    android:layout_height=&quot;fill_parent&quot;
    android:padding=&quot;5dp&quot;&amp;gt;
    &amp;lt;TabWidget 
      android:id=&quot;@android:id/tabs&quot;
      ... /&amp;gt;
    &amp;lt;FrameLayout 
      android:id=&quot;@android:id/tabcontent&quot;
      android:padding=&quot;5dp&quot;
      ... &amp;gt;
      &amp;lt;LinearLayout
        android:id=&quot;@+id/content1&quot; 
        android:orientation=&quot;vertical&quot;
        ... &amp;gt;
        &amp;lt;TextView 
          ... /&amp;gt;
      &amp;lt;/LinearLayout&amp;gt;
      &amp;lt;LinearLayout
        android:id=&quot;@+id/content2&quot; 
            ・
            ・
            ・
      &amp;lt;/LinearLayout&amp;gt;
    &amp;lt;/FrameLayout&amp;gt;
  &amp;lt;/LinearLayout&amp;gt;
&amp;lt;/TabHost&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
また, Tab が切り替わったときのアイコンの切り替えもXMLで指定できます&lt;br /&gt;
以下のように作ってres/drawable に置きます&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;&amp;lt;selector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&amp;gt;
  &amp;lt;!-- 選択されたときの画像 --&amp;gt;
  &amp;lt;item android:drawable=&quot;@android:drawable/star_big_on&quot;
        android:state_selected=&quot;true&quot; /&amp;gt;
  &amp;lt;!-- 選択されていないときの画像 --&amp;gt;
  &amp;lt;item android:drawable=&quot;@android:drawable/star_big_off&quot; /&amp;gt;
&amp;lt;/selector&amp;gt;
&lt;/pre&gt;んで, 本体&lt;br /&gt;
ここで Activity でなく TabActivity というのを継承させます&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;サンプルプログラム&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;import android.app.TabActivity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Gravity;
import android.widget.TabHost;
import android.widget.TextView;
import android.widget.TabHost.OnTabChangeListener;

public class TabTest extends TabActivity
                     implements OnTabChangeListener {
  private static final String TAG[] = {
    &quot;tag1&quot;, &quot;tag2&quot;, &quot;tag3&quot;,
  };
  private static final String LABEL[] = {
    &quot;Label1&quot;, &quot;Label2&quot;, &quot;Label3&quot;,
  };

  TabHost tabHost;
  TabHost.TabSpec spec;
  TextView textView;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.tabtest);
    textView = new TextView(this);
    
    // TabHost の取得
    tabHost = getTabHost();
    // Tab が切り替わったときに呼ばれるコールバックを登録
    tabHost.setOnTabChangedListener(this);

    /********** Tab その1 **********/
    // TabSpec の作成
    spec = tabHost.newTabSpec(TAG[0]);
    // インジケーターの設定
    spec.setIndicator(LABEL[0]);
    // Tab のコンテンツの設定
    spec.setContent(R.id.content1);
    // TabHost に Tab を追加
    tabHost.addTab(spec);

    /********** Tab その2 **********/
    spec = tabHost.newTabSpec(TAG[1])
    // アイコン付きインジケーターの設定
    .setIndicator(LABEL[1], getResources().getDrawable(R.drawable.icon))
    .setContent(R.id.content2);
    tabHost.addTab(spec);

    textView.setText(&quot;Text&quot;);
    textView.setBackgroundColor(Color.DKGRAY);
    textView.setTextColor(Color.RED);
    textView.setGravity(Gravity.CENTER);

    /********** Tab その3 **********/
    // 起動したいアクティビティのIntent作成
    Intent intent = new Intent().setClass(this, TabTest.class);
    
    spec = tabHost.newTabSpec(TAG[2])
    // インジケーターに任意のビューを設定
    .setIndicator(textView)
    // Intent を設定
    .setContent(intent);
    tabHost.addTab(spec);

    // 現在の Tab を設定
    tabHost.setCurrentTab(0);
  }
  // Tab が切り替わったときの動作 (引数はTag)
  public void onTabChanged(String tabId) {
    if (tabId == TAG[2])
      textView.setBackgroundColor(Color.LTGRAY);
    else
      textView.setBackgroundColor(Color.DKGRAY);
  }
}
&lt;/pre&gt;これでOK!&lt;br /&gt;
&lt;br /&gt;
プログラムを実行すると...&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgB_jdI5G_Bl87YQi80Z1ORqjUK6XDP-Sp58od1u8eUI0Br-Ziq3KGFCRTWDFA_MVcxL5-si4pG7SUoqDvpr5eEvYYCU7gxix31kLPLb1woQ8U8KtguiFd-N3wR7tw1dTWo8BiZ1G-jM1I/s1600/tabtest.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgB_jdI5G_Bl87YQi80Z1ORqjUK6XDP-Sp58od1u8eUI0Br-Ziq3KGFCRTWDFA_MVcxL5-si4pG7SUoqDvpr5eEvYYCU7gxix31kLPLb1woQ8U8KtguiFd-N3wR7tw1dTWo8BiZ1G-jM1I/s320/tabtest.png&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2GmNn4r5duopEEs9q0KtJx0zwNKa1JkU1MRG07wY_t1YNb37Qr1O0xLjPELx8wfdIMKWrA8c7d8T-0ZqoOa7JzwIeGzk1QexQdR4eGR4nheYO5iFT7t_94-B9E4CP6e6NueDC7_GVhQI/s1600/tabtest2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2GmNn4r5duopEEs9q0KtJx0zwNKa1JkU1MRG07wY_t1YNb37Qr1O0xLjPELx8wfdIMKWrA8c7d8T-0ZqoOa7JzwIeGzk1QexQdR4eGR4nheYO5iFT7t_94-B9E4CP6e6NueDC7_GVhQI/s320/tabtest2.png&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWUNJ3DyDp0JX77hnj5ApOhda-7btOtrOK_vk3jjwVD3W3W6TBn6aFU5Ux0gW9nZBj5vmPmMrjxX7P0RtZlXcKGkfmNBhW7qisEM8ao5yIWROp4bt_q60HZaimvt5-IkVxZ_RbnK_8gB8/s1600/tabtest3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWUNJ3DyDp0JX77hnj5ApOhda-7btOtrOK_vk3jjwVD3W3W6TBn6aFU5Ux0gW9nZBj5vmPmMrjxX7P0RtZlXcKGkfmNBhW7qisEM8ao5yIWROp4bt_q60HZaimvt5-IkVxZ_RbnK_8gB8/s320/tabtest3.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
こんな感じ!&lt;br /&gt;
&lt;br /&gt;
今回は Intent で自分自身を読んでます&lt;br /&gt;
当たり前ですが何回も呼ぶとオーバーフローして落ちます&lt;br /&gt;
&lt;br /&gt;
Tab で TabActivity を呼べば多段の Tab ができそう!&lt;br /&gt;
&lt;br /&gt;
参考サイト&lt;br /&gt;
&lt;a href=&quot;http://developer.android.com/intl/ja/resources/tutorials/views/hello-tabwidget.html&quot;&gt;http://developer.android.com/intl/ja/resources/tutorials/views/hello-tabwidget.html&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://developer.android.com/intl/ja/reference/android/widget/TabHost.html&quot;&gt;http://developer.android.com/intl/ja/reference/android/widget/TabHost.html&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://developer.android.com/intl/ja/reference/android/widget/TabWidget.html&quot;&gt;http://developer.android.com/intl/ja/reference/android/widget/TabWidget.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://weide-dev.blogspot.com/feeds/4270469801970133097/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://weide-dev.blogspot.com/2010/04/tab.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/4270469801970133097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/4270469801970133097'/><link rel='alternate' type='text/html' href='http://weide-dev.blogspot.com/2010/04/tab.html' title='Tab を作ってみた'/><author><name>weide</name><uri>http://www.blogger.com/profile/13173075712624032679</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgB_jdI5G_Bl87YQi80Z1ORqjUK6XDP-Sp58od1u8eUI0Br-Ziq3KGFCRTWDFA_MVcxL5-si4pG7SUoqDvpr5eEvYYCU7gxix31kLPLb1woQ8U8KtguiFd-N3wR7tw1dTWo8BiZ1G-jM1I/s72-c/tabtest.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6432728779111196799.post-5854727061672931768</id><published>2010-04-24T00:44:00.001+09:00</published><updated>2010-04-24T00:45:10.576+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>HorizontalScrollView を使ってみた</title><content type='html'>横方向にスクロールさせるには&lt;br /&gt;
HorizontalScrollView を使います&lt;br /&gt;
&lt;pre&gt;java.lang.Object
  ↳ android.view.View
    ↳ android.view.ViewGroup
      ↳ android.widget.FrameLayout
        ↳ android.widget.HorizontalScrollView
&lt;/pre&gt;&lt;br /&gt;
その名の通り ScrollView の横バージョンです&lt;br /&gt;
&lt;br /&gt;
HorizontalScrollView は ScrollView と同様一つしか子ビューを持てないので&lt;br /&gt;
LineaLayout などにまとめて入れてやります&lt;br /&gt;
&lt;br /&gt;
というわけで, HorizontalScrollView をいじってみた&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;XMLリソース&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;&amp;lt;HorizontalScrollView
  android:layout_width=&quot;fill_parent&quot;
  android:layout_height=&quot;fill_parent&quot; 
  android:id=&quot;@+id/HorizontalScrollView&quot;&amp;gt;
  &amp;lt;LinearLayout 
    android:id=&quot;@+id/LinearLayout&quot;
    android:layout_width=&quot;wrap_content&quot; 
    android:layout_height=&quot;wrap_content&quot;&amp;gt;
    &amp;lt;TextView 
      android:id=&quot;@+id/TextView&quot; 
      android:layout_width=&quot;wrap_content&quot;
      android:layout_height=&quot;wrap_content&quot; 
      android:text=&quot;HorizontalScrollViewTest&quot;&amp;gt;
    &amp;lt;/TextView&amp;gt;
        ・
        ・
        ・
  &amp;lt;/LinearLayout&amp;gt;
&amp;lt;/HorizontalScrollView&amp;gt;
&lt;/pre&gt;アクティビティー側で setContentView で設定&lt;br /&gt;
&lt;br /&gt;
プログラムを実行すると...&lt;br /&gt;
&lt;span id=&quot;goog_1533297240&quot;&gt;&lt;/span&gt;&lt;span id=&quot;goog_1533297241&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbDDo02GqSumafvsLeB9uiFi2yxFXamGIS_buLIzEyQw93MQofaI5hzBBUdG8S6Tnfd10Ie1fDkQI5TfQUTKaTqJwauBvovGvC3KwDUObRhAvmVFpt7KWb6KG-Leb629gtZELHoB6kYtk/s1600/horizontalscrollviewtest.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbDDo02GqSumafvsLeB9uiFi2yxFXamGIS_buLIzEyQw93MQofaI5hzBBUdG8S6Tnfd10Ie1fDkQI5TfQUTKaTqJwauBvovGvC3KwDUObRhAvmVFpt7KWb6KG-Leb629gtZELHoB6kYtk/s320/horizontalscrollviewtest.png&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgp94KyjDKZJ_P39NFT9ZPwZODF893ux3DUmrzzqk_2SbEki5jmXX-afJ5wOIKfgMtyjW4pK2AJ4qee8nCD_kaQMtFnQRSxcuBFk8KdtYLroDxCAswqsOS5VQHRi3cEM7Kksrvd_hD_Uw/s1600/horizontalscrollviewtest2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgp94KyjDKZJ_P39NFT9ZPwZODF893ux3DUmrzzqk_2SbEki5jmXX-afJ5wOIKfgMtyjW4pK2AJ4qee8nCD_kaQMtFnQRSxcuBFk8KdtYLroDxCAswqsOS5VQHRi3cEM7Kksrvd_hD_Uw/s320/horizontalscrollviewtest2.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
こんな感じ!&lt;br /&gt;
&lt;br /&gt;
一番下にスクロールバーが表示されています&lt;br /&gt;
&lt;br /&gt;
参考サイト&lt;br /&gt;
&lt;a href=&quot;http://developer.android.com/intl/ja/reference/android/widget/HorizontalScrollView.html&quot;&gt;http://developer.android.com/intl/ja/reference/android/widget/HorizontalScrollView.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://weide-dev.blogspot.com/feeds/5854727061672931768/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://weide-dev.blogspot.com/2010/04/horizontalscrollview.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/5854727061672931768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/5854727061672931768'/><link rel='alternate' type='text/html' href='http://weide-dev.blogspot.com/2010/04/horizontalscrollview.html' title='HorizontalScrollView を使ってみた'/><author><name>weide</name><uri>http://www.blogger.com/profile/13173075712624032679</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbDDo02GqSumafvsLeB9uiFi2yxFXamGIS_buLIzEyQw93MQofaI5hzBBUdG8S6Tnfd10Ie1fDkQI5TfQUTKaTqJwauBvovGvC3KwDUObRhAvmVFpt7KWb6KG-Leb629gtZELHoB6kYtk/s72-c/horizontalscrollviewtest.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6432728779111196799.post-7058834110636839084</id><published>2010-04-20T22:46:00.000+09:00</published><updated>2010-04-20T22:46:36.083+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>XML で Menu</title><content type='html'>Menu を XML で作成したいときは&lt;br /&gt;
/res に menu というフォルダを作成し、その中にxmlファイルを作成します&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIJLm8thZgLhCkvWdZ8tqSPM0EidbG7FclkefZ5M_n_0aDh7_V_m2EfO3rCePwciaFEevRmQ7DqrtQ1FSHMk9xc2__IN5cyZBKmGRj_5HAop_8lPFVsu6gJSCsbcz_TcGiOEIqOo3IkW0/s1600/res_menu.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIJLm8thZgLhCkvWdZ8tqSPM0EidbG7FclkefZ5M_n_0aDh7_V_m2EfO3rCePwciaFEevRmQ7DqrtQ1FSHMk9xc2__IN5cyZBKmGRj_5HAop_8lPFVsu6gJSCsbcz_TcGiOEIqOo3IkW0/s320/res_menu.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
XML は以下のようにすればOKです&lt;br /&gt;
submenu を作りたいときは item の中に menu を入れてあげます。&lt;br /&gt;
&lt;br /&gt;
XML リソース&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;menu xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&amp;gt;
  &amp;lt;item 
    android:id=&quot;@+id/menu_item01&quot; 
    android:title=&quot;Menu01&quot;/&amp;gt;
  &amp;lt;group 
    android:id=&quot;@+id/menu_group01&quot;&amp;gt;
    &amp;lt;item 
      android:icon=&quot;@drawable/icon&quot; 
      android:id=&quot;@+id/menu_item02&quot; 
      android:title=&quot;Menu02&quot;/&amp;gt;
  &amp;lt;/group&amp;gt;
  &amp;lt;item 
    android:id=&quot;@+id/menu_item03&quot; 
    android:title=&quot;Menu03&quot;&amp;gt;
    &amp;lt;menu&amp;gt;
      &amp;lt;item 
        android:id=&quot;@+id/submenu_item01&quot; 
        android:title=&quot;Sub_Menu01&quot;/&amp;gt;
      &amp;lt;item 
        android:id=&quot;@+id/submenu_item02&quot; 
        android:title=&quot;Sub_Menu02/&quot;&amp;gt;
    &amp;lt;/menu&amp;gt;
  &amp;lt;/item&amp;gt;
&amp;lt;/menu&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
そして, &lt;br /&gt;
MenuInflater というクラスを使ってXMLを取得します&lt;br /&gt;
&lt;br /&gt;
サンプルプログラム&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;

public class MenuXMLTest extends Activity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
  }

  // Option Menu が最初に表示される時に1度だけ呼び出される
  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    super.onCreateOptionsMenu(menu);
    // MenuInflater の取得
    MenuInflater menuInflater = getMenuInflater();
    // MenuInflater から XML の取得  
    menuInflater.inflate(R.menu.menutest, menu);
    return true;
  }
}
&lt;/pre&gt;&lt;br /&gt;
あとは普通に onOptionsItemSelected(MenuItem item) などをオーバーライドすればアイテムが選択された際の処理などもできます&lt;br /&gt;
&lt;br /&gt;
プログラムを実行すると...&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdEmtsVx4WN1o_NnPoupwI7vyauutH9vSxi5iXUq-HCLSo0DhTzIUx5AzrKpIWqVIgD5DbQn0PLWE6hs0m9IrfHjRf7m9HOwurl1Nq5Z67aH4hqhl0vAGyF1fEExnZZ9XLR9ruE0D4i_s/s1600/menutest_xml.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdEmtsVx4WN1o_NnPoupwI7vyauutH9vSxi5iXUq-HCLSo0DhTzIUx5AzrKpIWqVIgD5DbQn0PLWE6hs0m9IrfHjRf7m9HOwurl1Nq5Z67aH4hqhl0vAGyF1fEExnZZ9XLR9ruE0D4i_s/s320/menutest_xml.png&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMh-TnDk4SeWxLFyjRWNBcYMhYeJJkItR20bg2IBNBTf7nWTwp_m7pxZognyd8lgiUDSGENqgwHOrDTVk7njKC725KG6HgPpEBE5o27hjFB66zDTFZwo-eCNcmvUlZ2AImD77jkA30uj8/s1600/menutest_xml2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMh-TnDk4SeWxLFyjRWNBcYMhYeJJkItR20bg2IBNBTf7nWTwp_m7pxZognyd8lgiUDSGENqgwHOrDTVk7njKC725KG6HgPpEBE5o27hjFB66zDTFZwo-eCNcmvUlZ2AImD77jkA30uj8/s320/menutest_xml2.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
こんな感じ!&lt;br /&gt;
&lt;br /&gt;
参考サイト&lt;br /&gt;
&lt;a href=&quot;http://developer.android.com/intl/ja/guide/topics/resources/available-resources.html#menus&quot;&gt;http://developer.android.com/intl/ja/guide/topics/resources/available-resources.html#menus&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://developer.android.com/intl/ja/reference/android/view/MenuInflater.html&quot;&gt;http://developer.android.com/intl/ja/reference/android/view/MenuInflater.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://weide-dev.blogspot.com/feeds/7058834110636839084/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://weide-dev.blogspot.com/2010/04/xml-menu.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/7058834110636839084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/7058834110636839084'/><link rel='alternate' type='text/html' href='http://weide-dev.blogspot.com/2010/04/xml-menu.html' title='XML で Menu'/><author><name>weide</name><uri>http://www.blogger.com/profile/13173075712624032679</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIJLm8thZgLhCkvWdZ8tqSPM0EidbG7FclkefZ5M_n_0aDh7_V_m2EfO3rCePwciaFEevRmQ7DqrtQ1FSHMk9xc2__IN5cyZBKmGRj_5HAop_8lPFVsu6gJSCsbcz_TcGiOEIqOo3IkW0/s72-c/res_menu.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6432728779111196799.post-5947605483687284078</id><published>2010-04-17T01:18:00.000+09:00</published><updated>2010-04-17T01:18:21.890+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse"/><category scheme="http://www.blogger.com/atom/ns#" term="Xperia"/><title type='text'>Eclipse で Xperia用アプリ開発準備</title><content type='html'>EclipseでXperia用のアプリを開発するためには、&lt;br /&gt;
&lt;br /&gt;
まず、以下のソニーエリクソンのページ(&lt;a href=&quot;http://developer.sonyericsson.com/wportal/devworld/downloads&quot;&gt;http://developer.sonyericsson.com/wportal/devworld/downloads&lt;/a&gt;)&lt;br /&gt;
から, Android の部分にある [All Android Downloads] をクリックし&lt;br /&gt;
『Sony Ericsson Xperia X10 add-on for the Android SDK』というのをダウンロード&lt;br /&gt;
&lt;br /&gt;
ダウンロードしたファイルを解凍して [Android SDK]を保存してあるディレクトリを開いて、その中にある [add-ons]ディレクトリの中に置く&lt;br /&gt;
&lt;br /&gt;
そしたら、次は Eclipse を開く&lt;br /&gt;
&lt;br /&gt;
普通のAVDの作成と同じで&lt;br /&gt;
[Window] -&amp;gt; [Android SDK and AVD Manager] 移動して [New] をクリック&lt;br /&gt;
すると [Target] に『X10 (Sony Erricsson ...』というのがあるのでそれを選択&lt;br /&gt;
&lt;br /&gt;
Skin も『X10』を選択(たぶんデフォルトでなってる)&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_r8tngnceeeMPsED0Zy1w-df4Q0PfqYX6P6IahS4gDI_klwheO-pLUQ77H1TmImTWKIgoM1lbeTe_95_X4b_B8FkX3hBVMG9a7X6nmF8laqlOwwOsyfi1bhIKoE5RCwtSw122zXN0MvY/s1600/Create_AVD_Xperia.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_r8tngnceeeMPsED0Zy1w-df4Q0PfqYX6P6IahS4gDI_klwheO-pLUQ77H1TmImTWKIgoM1lbeTe_95_X4b_B8FkX3hBVMG9a7X6nmF8laqlOwwOsyfi1bhIKoE5RCwtSw122zXN0MvY/s320/Create_AVD_Xperia.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
んで [Create AVD]&lt;br /&gt;
&lt;br /&gt;
そして、プロジェクトの作成&lt;br /&gt;
&lt;br /&gt;
Android 1.6 用のものがあるならわざわざ新しいのを作らなくても大丈夫&lt;br /&gt;
&lt;br /&gt;
こちらも [Target Name] のところに『X10』が現れるので選択&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhv2He5ctuDuWgd7vO_CHkM5x6r1JFwNFPaNIiOhE_RBbb3PNOzVt5thk8IObf1IyzTnPyxNQ4MWuSAY0PC3LTe-2wEsmru5-YJA9VIpEcgOPrKrK-7FbHBHTPNdoaDNWSZTeTQscVylUA/s1600/Android_Xperia_Project+.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhv2He5ctuDuWgd7vO_CHkM5x6r1JFwNFPaNIiOhE_RBbb3PNOzVt5thk8IObf1IyzTnPyxNQ4MWuSAY0PC3LTe-2wEsmru5-YJA9VIpEcgOPrKrK-7FbHBHTPNdoaDNWSZTeTQscVylUA/s320/Android_Xperia_Project+.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
これでOK!&lt;br /&gt;
&lt;br /&gt;
そして、[Run Configurations] で Tagetをさっき作った『X10』のAVDを選んで実行すると...&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggmIlppsnWncJjMp-3DucJ7OJ6TiNxlNHC49zI6Bp6Jrpnpx4zfh2dcU2qBrzxYvrz93rhEcInb24MjdtiMxOKQJuqnAnZUsWRSpmwDip4Kf5fh3D1Q-tX1YYe6xy7mOSgiJOA9JNj3MI/s1600/AVD_Xperia.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggmIlppsnWncJjMp-3DucJ7OJ6TiNxlNHC49zI6Bp6Jrpnpx4zfh2dcU2qBrzxYvrz93rhEcInb24MjdtiMxOKQJuqnAnZUsWRSpmwDip4Kf5fh3D1Q-tX1YYe6xy7mOSgiJOA9JNj3MI/s320/AVD_Xperia.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyVZlUaKLFimDV83_MGxxiSpJr795qCQdYxaxzHAS280tGsx263K6VUL3TLPckYF85yp1jc3cy8ZY_8gTaKUxbKGJFEfvTaMBogNGarx9GfaXTN-tEB_ZImFV-4FSgASD0ydROq099QU4/s1600/HelloXperia.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyVZlUaKLFimDV83_MGxxiSpJr795qCQdYxaxzHAS280tGsx263K6VUL3TLPckYF85yp1jc3cy8ZY_8gTaKUxbKGJFEfvTaMBogNGarx9GfaXTN-tEB_ZImFV-4FSgASD0ydROq099QU4/s320/HelloXperia.png&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
こんな感じ!&lt;br /&gt;
&lt;br /&gt;
やっぱ Xperia かっこいいですね!</content><link rel='replies' type='application/atom+xml' href='http://weide-dev.blogspot.com/feeds/5947605483687284078/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://weide-dev.blogspot.com/2010/04/eclipse-xperia.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/5947605483687284078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/5947605483687284078'/><link rel='alternate' type='text/html' href='http://weide-dev.blogspot.com/2010/04/eclipse-xperia.html' title='Eclipse で Xperia用アプリ開発準備'/><author><name>weide</name><uri>http://www.blogger.com/profile/13173075712624032679</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_r8tngnceeeMPsED0Zy1w-df4Q0PfqYX6P6IahS4gDI_klwheO-pLUQ77H1TmImTWKIgoM1lbeTe_95_X4b_B8FkX3hBVMG9a7X6nmF8laqlOwwOsyfi1bhIKoE5RCwtSw122zXN0MvY/s72-c/Create_AVD_Xperia.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6432728779111196799.post-3675996807303660814</id><published>2010-04-14T23:03:00.001+09:00</published><updated>2010-04-14T23:04:21.839+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>XML で Animation</title><content type='html'>Animation を XML で作成したいときは&lt;br /&gt;
&lt;br /&gt;
/res に anim というフォルダを作成し、その中にxmlファイルを作成します&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2-qTP4hD6fdBVFXCV2JWh9Mz7kcj-Mf6TKFL9uRg7qF2V_pJP58MF_-afYoH082zIZuki6WxIS7rwJth6UamdO9DTQcApyqnH52yzAwb8Z2_4QG2yE1WZPO1RWG6UQfudWnOmq2XAEqA/s1600/res_anim.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2-qTP4hD6fdBVFXCV2JWh9Mz7kcj-Mf6TKFL9uRg7qF2V_pJP58MF_-afYoH082zIZuki6WxIS7rwJth6UamdO9DTQcApyqnH52yzAwb8Z2_4QG2yE1WZPO1RWG6UQfudWnOmq2XAEqA/s320/res_anim.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
アニメーションの要素としては以下のようなものがあります&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;set&lt;/li&gt;
&lt;li&gt;alpha&lt;/li&gt;
&lt;li&gt;scale&lt;/li&gt;
&lt;li&gt;translate&lt;/li&gt;
&lt;li&gt;rotate&lt;/li&gt;
&lt;li&gt;interpolator&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
サイズを指定するものでViewサイズに対する比率を指定できるわけですが&lt;br /&gt;
以下の2種類で指定します&lt;br /&gt;
&lt;pre&gt;%   : View のサイズに対する比率
%p  : 親View のサイズに対する比率
&lt;/pre&gt;&lt;br /&gt;
というわけで、アニメーションを作ってみた&lt;br /&gt;
&lt;br /&gt;
下からズームインしてくるアニメーション&lt;br /&gt;
&lt;b&gt;zoom_in_from_bottom.xml&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;set xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&amp;gt;
  &amp;lt;scale
    android:fromXScale=&quot;0.0&quot;
    android:toXScale=&quot;1.0&quot;
    android:fromYScale=&quot;0.0&quot;
    android:toYScale=&quot;1.0&quot;
    android:pivotX=&quot;50%&quot;
    android:duration=&quot;1000&quot;&amp;gt;
  &amp;lt;/scale&amp;gt;
  &amp;lt;translate
    android:fromYDelta=&quot;100%p&quot;
    android:toYDelta=&quot;0.0&quot;
    android:duration=&quot;1000&quot;&amp;gt;
  &amp;lt;/translate&amp;gt;
&amp;lt;/set&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
こんな感じで作成します&lt;br /&gt;
&lt;br /&gt;
作成したら&lt;br /&gt;
AnimationUtilsクラスの&lt;br /&gt;
&lt;b&gt;loadAnimation(context, id)&lt;/b&gt; メソッドを使ってアニメーションを取得&lt;br /&gt;
&lt;br /&gt;
例えば&lt;br /&gt;
AnimationUtils.loadAnimation(context, R.anim.zoom_in_from_bottom);&lt;br /&gt;
というふうにすれば取得できます!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
参考サイト&lt;br /&gt;
&lt;a href=&quot;http://developer.android.com/intl/ja/guide/topics/resources/available-resources.html#animation&quot;&gt;http://developer.android.com/intl/ja/guide/topics/resources/available-resources.html#animation&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://developer.android.com/intl/ja/reference/android/view/animation/AnimationUtils.html&quot;&gt;http://developer.android.com/intl/ja/reference/android/view/animation/AnimationUtils.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://weide-dev.blogspot.com/feeds/3675996807303660814/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://weide-dev.blogspot.com/2010/04/xml-animation.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/3675996807303660814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/3675996807303660814'/><link rel='alternate' type='text/html' href='http://weide-dev.blogspot.com/2010/04/xml-animation.html' title='XML で Animation'/><author><name>weide</name><uri>http://www.blogger.com/profile/13173075712624032679</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2-qTP4hD6fdBVFXCV2JWh9Mz7kcj-Mf6TKFL9uRg7qF2V_pJP58MF_-afYoH082zIZuki6WxIS7rwJth6UamdO9DTQcApyqnH52yzAwb8Z2_4QG2yE1WZPO1RWG6UQfudWnOmq2XAEqA/s72-c/res_anim.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6432728779111196799.post-2852052915140442615</id><published>2010-04-14T21:55:00.001+09:00</published><updated>2010-04-14T21:57:44.063+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>XML でカスタムView</title><content type='html'>既存の View を拡張して新たに自分だけの View を作成したいときは&lt;br /&gt;
&lt;br /&gt;
まず、res/values に attrs.xml を作成します&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQCz-Y-cQBcGnZ87xIBxXYPlfCuc2qy4n4eLs78DQDDTcgnzZ9u_KqYe0oxhhDlQgK26qhqExHn0agWsaVvM4wG1Y24zmZ9Nfd7rUAC5WJhPeHuFMp_Gh3LQHWH_MN8VEQG0dD0h8yLH0/s1600/res_values_attrs.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQCz-Y-cQBcGnZ87xIBxXYPlfCuc2qy4n4eLs78DQDDTcgnzZ9u_KqYe0oxhhDlQgK26qhqExHn0agWsaVvM4wG1Y24zmZ9Nfd7rUAC5WJhPeHuFMp_Gh3LQHWH_MN8VEQG0dD0h8yLH0/s320/res_values_attrs.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;attrs.xml&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;resources&amp;gt;
 &amp;lt;!-- name : custom view class name --&amp;gt;
  &amp;lt;declare-styleable name=&quot;CustomView&quot;&amp;gt;
    &amp;lt;attr name=&quot;text&quot; format=&quot;string&quot; /&amp;gt;
    &amp;lt;attr name=&quot;color&quot; format=&quot;color&quot; /&amp;gt;
    &amp;lt;attr name=&quot;size&quot; format=&quot;dimension&quot; /&amp;gt;
  &amp;lt;/declare-styleable&amp;gt;
&amp;lt;/resources&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
declare-styleable の name属性は作成するカスタムビューのクラス名を指定する&lt;br /&gt;
&lt;br /&gt;
次に、レイアウトを作成します&lt;br /&gt;
&lt;br /&gt;
xmlns:app=&quot;http://schemas.android.com/apk/res/パッケージの名前&quot;&lt;br /&gt;
というのを追加します&lt;br /&gt;
app は勝手につけた名前&lt;br /&gt;
&lt;br /&gt;
attrs.xml で作成した属性を指定します&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;XMLリソース&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;LinearLayout
  xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
  xmlns:app=&quot;http://schemas.android.com/apk/res/androidtest.app&quot;
  android:id=&quot;@+id/LinearLayout&quot;
  android:layout_height=&quot;fill_parent&quot;
  android:layout_width=&quot;fill_parent&quot;&amp;gt; 
  &amp;lt;androidtest.app.CustomView
    android:id=&quot;@+id/CustomView&quot; 
    android:layout_height=&quot;fill_parent&quot;
    android:layout_width=&quot;fill_parent&quot; 
    app:text=&quot;CustomViewTest&quot; 
    app:color=&quot;#FFFF0000&quot;
    app:size=&quot;32sp&quot; /&amp;gt;
&amp;lt;/LinearLayout&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
そしたら、カスタムビューの作成&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;サンプルプログラム(CustomView)&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;
import androidtest.app.R;

public class CustomView extends View {
  String str;
  int color;
  int size;

  public CustomView(Context context, AttributeSet attrs) {
    super(context, attrs);

    // styleable から TypedArray の取得
    TypedArray tArray = 
      context.obtainStyledAttributes(
        attrs,
        R.styleable.CustomView
      );
  
    // TypedArray から String を取得
    str = tArray.getString(R.styleable.CustomView_text);
    // TypedArray から Color を取得
    color = tArray.getColor(R.styleable.CustomView_color, 0xFFFFFFFF);
    // TypedArray から Dimension を取得
    size = tArray.getDimensionPixelSize(R.styleable.CustomView_size, 12);
  }

  @Override
  protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    Paint paint = new Paint();
    paint.setColor(color);
    paint.setTextSize(size);
    canvas.drawText(str, 32, 64, paint);
  }
}
&lt;/pre&gt;&lt;br /&gt;
Activity では setContentView で作成した layout を指定するだけ&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;サンプルプログラム(Activity)&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;import android.app.Activity;
import android.os.Bundle;
import androidtest.app.R;

public class CustomViewTest extends Activity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.customviewtest);
  }
}
&lt;/pre&gt;&lt;br /&gt;
プログラムを実行すると...&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9CDybif1viClm1wfwdOJk2oMrKt8ONpAu66TB035FfRnPwz7uD4A6vZ6qHQ90W9G0UYGCojQ-mGIwDaA8eEz7J_XvN5PrXqw46aw3WrQZqD5OuipEytDB6XF11oQPJv2YtdlFEVCdmIY/s1600/customviewtest.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9CDybif1viClm1wfwdOJk2oMrKt8ONpAu66TB035FfRnPwz7uD4A6vZ6qHQ90W9G0UYGCojQ-mGIwDaA8eEz7J_XvN5PrXqw46aw3WrQZqD5OuipEytDB6XF11oQPJv2YtdlFEVCdmIY/s320/customviewtest.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
こんな感じ!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
参考サイト&lt;br /&gt;
&lt;a href=&quot;http://developer.android.com/intl/ja/guide/topics/resources/available-resources.html#customresources&quot;&gt;http://developer.android.com/intl/ja/guide/topics/resources/available-resources.html#customresources&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://weide-dev.blogspot.com/feeds/2852052915140442615/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://weide-dev.blogspot.com/2010/04/xml-customview.html#comment-form' title='1 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/2852052915140442615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/2852052915140442615'/><link rel='alternate' type='text/html' href='http://weide-dev.blogspot.com/2010/04/xml-customview.html' title='XML でカスタムView'/><author><name>weide</name><uri>http://www.blogger.com/profile/13173075712624032679</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQCz-Y-cQBcGnZ87xIBxXYPlfCuc2qy4n4eLs78DQDDTcgnzZ9u_KqYe0oxhhDlQgK26qhqExHn0agWsaVvM4wG1Y24zmZ9Nfd7rUAC5WJhPeHuFMp_Gh3LQHWH_MN8VEQG0dD0h8yLH0/s72-c/res_values_attrs.png" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6432728779111196799.post-8725645400469961109</id><published>2010-04-12T21:36:00.002+09:00</published><updated>2010-04-12T21:36:39.183+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>ToggleButton を使ってみた</title><content type='html'>ToggleButton は&lt;br /&gt;
&lt;pre&gt;java.lang.Object
  ↳ android.view.View
    ↳ android.widget.TextView
      ↳ android.widget.Button
        ↳ android.widget.CompoundButton
          ↳ android.widget.ToggleButton
&lt;/pre&gt;を使います&lt;br /&gt;
&lt;br /&gt;
というわけで、ToggleButton を使ってみた&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;サンプルプログラム&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
import android.widget.ToggleButton;

public class ToggleButtonTest extends Activity {
  ToggleButton toggleButton;
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.togglebuttontest);
  
    toggleButton = (ToggleButton) findViewById(R.id.ToggleButton01);
  
    // ToggleButton が On のときのテキストを設定
    toggleButton.setTextOn(&quot;Toggle ON&quot;);
    // ToggleButton が Off のときのテキストを設定
    toggleButton.setTextOff(&quot;Toggle OFF&quot;);
  
    // ToggleButton が On かどうかを設定
    toggleButton.setChecked(true);
  
    // ToggleButton が On かどうかを取得
    boolean checked = toggleButton.isChecked(); 
  }
}
&lt;/pre&gt;&lt;br /&gt;
XMLリソースで設定もできます&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;XMLリソース&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;&amp;lt;ToggleButton
  android:id=&quot;@+id/ToggleButton&quot;
  android:layout_height=&quot;wrap_content&quot;
  android:layout_width=&quot;wrap_content&quot;
  android:textOff=&quot;Toggle Off&quot;
  android:textOn=&quot;Toggle On&quot;&amp;gt;
&amp;lt;/ToggleButton&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
プログラムを実行すると...&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYYrp_HsGLGR2SGm4-V71fiYq71cafF-Iaw0jHJzKd8DxzA2vD5NHL-vI6VntYE1Z4BKSvVuKaZQyoq6zozCvUUBED8hAOZAmod-jKiRAVSEvFMCN4Hq8cnwOiNCRtsR8vnKlb1WQ9HXk/s1600/togglebuttontest_off.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYYrp_HsGLGR2SGm4-V71fiYq71cafF-Iaw0jHJzKd8DxzA2vD5NHL-vI6VntYE1Z4BKSvVuKaZQyoq6zozCvUUBED8hAOZAmod-jKiRAVSEvFMCN4Hq8cnwOiNCRtsR8vnKlb1WQ9HXk/s320/togglebuttontest_off.png&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY3qqJ7BKhIyIHE4fbaqvrwFRj7YM-TzyFJBVD4PNUG5mV1CzSI-cbAuJzZWT-VsvuzpfGYKRyOmDt8v_sUpud04bBTh_KdCvkesYrO5PycKOACPgeqD8xfrmAAxcdR96e4vHuNppYmXs/s1600/togglebuttontest_on.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY3qqJ7BKhIyIHE4fbaqvrwFRj7YM-TzyFJBVD4PNUG5mV1CzSI-cbAuJzZWT-VsvuzpfGYKRyOmDt8v_sUpud04bBTh_KdCvkesYrO5PycKOACPgeqD8xfrmAAxcdR96e4vHuNppYmXs/s320/togglebuttontest_on.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span id=&quot;goog_497069214&quot;&gt;&lt;/span&gt;&lt;span id=&quot;goog_497069215&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
こんな感じ!&lt;br /&gt;
&lt;br /&gt;
参考サイト&lt;br /&gt;
&lt;a href=&quot;http://developer.android.com/intl/ja/reference/android/widget/ToggleButton.html&quot;&gt;http://developer.android.com/intl/ja/reference/android/widget/ToggleButton.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://weide-dev.blogspot.com/feeds/8725645400469961109/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://weide-dev.blogspot.com/2010/04/togglebutton1.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/8725645400469961109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/8725645400469961109'/><link rel='alternate' type='text/html' href='http://weide-dev.blogspot.com/2010/04/togglebutton1.html' title='ToggleButton を使ってみた'/><author><name>weide</name><uri>http://www.blogger.com/profile/13173075712624032679</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYYrp_HsGLGR2SGm4-V71fiYq71cafF-Iaw0jHJzKd8DxzA2vD5NHL-vI6VntYE1Z4BKSvVuKaZQyoq6zozCvUUBED8hAOZAmod-jKiRAVSEvFMCN4Hq8cnwOiNCRtsR8vnKlb1WQ9HXk/s72-c/togglebuttontest_off.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6432728779111196799.post-8809785712661596505</id><published>2010-04-11T01:28:00.001+09:00</published><updated>2010-04-11T11:30:32.684+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>いろいろな AlertDialog</title><content type='html'>AlertDialog.Builderクラスを使っていろいろな AlertDialog を作ってみた&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;サンプルプログラム&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.DialogInterface.OnMultiChoiceClickListener;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class AlertDialogTest2 extends Activity implements View.OnClickListener {
  AlertDialog.Builder alertDialogBuilder;
  Button button[];

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.alertdialogtest2);

    button = new Button[3];
    for (int i = 0; i &amp;lt; 3; i++) { d.Button01 + i);
      button[i].setOnClickListener(this);
    }
  }

  public void onClick(View v) {
    if (v == button[0]) {
      setEditAlertDialog();
    } else if (v == button[1]) {
      setSingleChoiceDialog();
    } else if (v == button[2]) {
       setMultiChoiceDialog();
    }
  }

  /* AlertDialog(EditText) */
  public void setEditAlertDialog() {
    EditText editText = new EditText(this);
    editText.setText(&quot;Please fill your name!&quot;);

    alertDialogBuilder = new AlertDialog.Builder(this);
    alertDialogBuilder.setTitle(&quot;EditTextDialog&quot;);

    // AlertDialog に View を設定
    alertDialogBuilder.setView(editText);

    // Positive Button を設定
    alertDialogBuilder.setPositiveButton(
      &quot;Positive&quot;, 
      new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
          // Positive Button がクリックされた時の動作
        }
      }
    );
    alertDialogBuilder.show();
  }
 
  /* SingleChoiceDialog */
  public void setSingleChoiceDialog() {
    // 表示させるアイテム名
    final String[] str_items = {
      &quot;One&quot;,
      &quot;Two&quot;,
      &quot;Three&quot;
    };

    alertDialogBuilder = new AlertDialog.Builder(this);
    alertDialogBuilder.setTitle(&quot;SingleChoiceDialog&quot;);

    // 初めに選ばれているアイテム
    final int default_item = 0;

    // SingleChoiceDialog の作成
    alertDialogBuilder.setSingleChoiceItems(
      str_items, 
      default_item,
      new OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
          // アイテムが選ばれたときの動作
        }
      }
    );
    // Positive Button を設定
    alertDialogBuilder.setPositiveButton(
      &quot;Positive&quot;, 
      new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
          // Positive Button がクリックされた時の動作
        }
      }
    );
    alertDialogBuilder.show();
  }

  /* MultiChoiceDialog */
  public void setMultiChoiceDialog() {
    // 表示させるアイテム名
    final String[] str_items = {
      &quot;Red&quot;,
      &quot;Green&quot;,
      &quot;Blue&quot;
    };
    // 各アイテムがチェックされている状態かどうか
    final boolean[] flag_items = {
      false,
      true,
      false
    };

    alertDialogBuilder = new AlertDialog.Builder(this);
    alertDialogBuilder.setTitle(&quot;MultiChoiceDialog&quot;);

    // MultiChoiceDialog の作成
    alertDialogBuilder.setMultiChoiceItems(
      str_items, 
      flag_items,
      new OnMultiChoiceClickListener() {
        public void onClick(
            DialogInterface dialog, 
            int which, 
            boolean isChecked) {
          // アイテムが選ばれたときの動作
        }
      }
    );
    // Positive Button を設定
    alertDialogBuilder.setPositiveButton(
      &quot;Positive&quot;, 
      new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
          // Positive Button がクリックされた時の動作
        }
      }
    );
    alertDialogBuilder.show();
  }
}
&lt;/pre&gt;プログラムを実行すると...&lt;br /&gt;
&lt;br /&gt;
AlertDialog(EditText)&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaq-SPZiZ5D1AkuKxsDLqDStvoHEPuqxwdQIm-1phUkz_P344uvsA4SEzJ__i_A_UpGjOPtAvtr7J7U78RXTQ7GvsFzlsQt1zGN3mLAF5bnXkziFDHhUdkv38LfyNRYoxQ2ZOiWQMuDuc/s1600/alertdialog(edittext).png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaq-SPZiZ5D1AkuKxsDLqDStvoHEPuqxwdQIm-1phUkz_P344uvsA4SEzJ__i_A_UpGjOPtAvtr7J7U78RXTQ7GvsFzlsQt1zGN3mLAF5bnXkziFDHhUdkv38LfyNRYoxQ2ZOiWQMuDuc/s320/alertdialog(edittext).png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
SingleChoiceDialog&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi832nrdC0StYevqv4VOgFrMVSdJACvKtZURMFASnhXhClpOAMXM2n2eluLv656GbbbaoRHuWyafOFxy9vXrkx3g9HIGtyyIGVmMjzQyb4ezYC2hpajla6-tKXOUg3dW5VD3yEAwWCuYFE/s1600/singlechoicedialog.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi832nrdC0StYevqv4VOgFrMVSdJACvKtZURMFASnhXhClpOAMXM2n2eluLv656GbbbaoRHuWyafOFxy9vXrkx3g9HIGtyyIGVmMjzQyb4ezYC2hpajla6-tKXOUg3dW5VD3yEAwWCuYFE/s320/singlechoicedialog.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
MultiChoiceDialog&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwHGzP9yNRZHamckVdBj-EpuB3lgdUUVzYE2Xwl8p6nSzx-aWnNGOSTAAr-gW_JLZE8Zqi-lojhQOfznGN387vH7cSGfrUAREBR835QzsI8WK7XB8wvwsUWwHi8SM2RjihMzOlvI8yjfg/s1600/multichoicedialog.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwHGzP9yNRZHamckVdBj-EpuB3lgdUUVzYE2Xwl8p6nSzx-aWnNGOSTAAr-gW_JLZE8Zqi-lojhQOfznGN387vH7cSGfrUAREBR835QzsI8WK7XB8wvwsUWwHi8SM2RjihMzOlvI8yjfg/s320/multichoicedialog.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
こんな感じ!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
参考サイト&lt;br /&gt;
&lt;a href=&quot;http://developer.android.com/intl/ja/reference/android/app/AlertDialog.html&quot;&gt;http://developer.android.com/intl/ja/reference/android/app/AlertDialog.html&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://developer.android.com/intl/ja/reference/android/app/AlertDialog.Builder.html&quot;&gt;http://developer.android.com/intl/ja/reference/android/app/AlertDialog.Builder.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://weide-dev.blogspot.com/feeds/8809785712661596505/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://weide-dev.blogspot.com/2010/04/alertdialog.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/8809785712661596505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/8809785712661596505'/><link rel='alternate' type='text/html' href='http://weide-dev.blogspot.com/2010/04/alertdialog.html' title='いろいろな AlertDialog'/><author><name>weide</name><uri>http://www.blogger.com/profile/13173075712624032679</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaq-SPZiZ5D1AkuKxsDLqDStvoHEPuqxwdQIm-1phUkz_P344uvsA4SEzJ__i_A_UpGjOPtAvtr7J7U78RXTQ7GvsFzlsQt1zGN3mLAF5bnXkziFDHhUdkv38LfyNRYoxQ2ZOiWQMuDuc/s72-c/alertdialog(edittext).png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6432728779111196799.post-3885115774560860344</id><published>2010-04-11T01:09:00.001+09:00</published><updated>2010-04-11T01:11:08.658+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>Spannable で文字のマークアップ</title><content type='html'>Spannable はテキストをマークアップするためのインターフェースです&lt;br /&gt;
&lt;br /&gt;
CharacterStyleなどのクラスを使って文字列の一部を&lt;br /&gt;
下線を引いたり、下付き文字にしたり、&lt;br /&gt;
上付き文字にしたり、URLを付けたり...&lt;br /&gt;
と様々なことができます&lt;br /&gt;
&lt;br /&gt;
CharacterStyle のサブクラスには&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;UnderlineSpan&lt;/li&gt;
&lt;li&gt;SubscriptSpan&lt;/li&gt;
&lt;li&gt;SuperscriptSpan&lt;/li&gt;
&lt;li&gt;URLSpan&lt;/li&gt;
&lt;li&gt;ScaleXSpan&lt;/li&gt;
&lt;li&gt;RelativeSizeSpan&lt;/li&gt;
etc... &lt;/ul&gt;といろいろあります&lt;br /&gt;
&lt;br /&gt;
というわけで, Spannable でテキストをいじってみた&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;サンプルプログラム&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;import android.app.Activity;
import android.os.Bundle;
import android.text.Spannable;
import android.text.Spannable.Factory;
import android.text.style.RelativeSizeSpan;
import android.text.style.ScaleXSpan;
import android.text.style.SubscriptSpan;
import android.text.style.SuperscriptSpan;
import android.text.style.URLSpan;
import android.text.style.UnderlineSpan;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;

public class SpannableTest extends Activity {
  Spannable spannable;

  UnderlineSpan underline;
  SubscriptSpan subscript;
  SuperscriptSpan superscript;
  URLSpan url;
  ScaleXSpan scaleX;
  RelativeSizeSpan relative;

  TextView textView[];

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.spannabletest);

    textView = new TextView[4];
    for (int i = 0; i &amp;lt; 4; i++) {
      textView[i] = (TextView) findViewById(R.id.TextView01 + i);
    }

    // UnderlineSpan
    underline = new UnderlineSpan();
    // SubscriptSpan
    subscript = new SubscriptSpan();
    // SuperscriptSpan
    superscript = new SuperscriptSpan();
    // URLSpan
    url = new URLSpan(&quot;http://weide-dev.blogspot.com/&quot;);
    // ScaleXSpan
    scaleX = new ScaleXSpan(0.5f);
    // RelativeSizeSpan
    relative = new RelativeSizeSpan(0.5f);

    // Factory の取得
    Factory factory = Spannable.Factory.getInstance();

    /* アンダーラインが引かれた文字列 */
    // Spannable の取得
    spannable = factory.newSpannable(textView[0].getText());
    // 0からテキストの長さ分まで下線を引く
    spannable.setSpan(
        underline,
        0,
        textView[0].getText().length(),
        spannable.getSpanFlags(underline)
    );
    // TextView にテキストを設定
    textView[0].setText(spannable, TextView.BufferType.SPANNABLE);

    /* 後ろ4文字が下付きの文字列 */
    spannable = factory.newSpannable(textView[1].getText());
    // 後ろ4文字を下付き文字にする
    spannable.setSpan(
        subscript,
        textView[1].getText().length() - 4,
        textView[1].getText().length(),
        spannable.getSpanFlags(subscript)
    );
    // 後ろ4文字のXのスケールを0.5倍する
    spannable.setSpan(
        scaleX,
        textView[1].getText().length() - 4,
        textView[1].getText().length(),
        spannable.getSpanFlags(scaleX)
    );
    textView[1].setText(spannable, TextView.BufferType.SPANNABLE);

    /* 後ろ4文字が上付きの文字列 */
    spannable = factory.newSpannable(textView[2].getText());
    // 後ろ4文字を上付き文字にする
    spannable.setSpan(
        superscript,
        textView[2].getText().length() - 4,
        textView[2].getText().length(),
        spannable.getSpanFlags(superscript)
    );
    // 後ろ4文字のサイズを0.5倍する
    spannable.setSpan(
        relative,
        textView[2].getText().length() - 4,
        textView[2].getText().length(),
        spannable.getSpanFlags(relative)
    );
    textView[2].setText(spannable, TextView.BufferType.SPANNABLE);

    /* URL文字列 */
    spannable = factory.newSpannable(textView[3].getText());
    // 0からテキストの長さ分までURLタイプにする
    spannable.setSpan(
        url,
        0,
        textView[3].getText().length(),
        spannable.getSpanFlags(url)
    );
    textView[3].setText(spannable, TextView.BufferType.SPANNABLE);
    textView[3].setOnClickListener(new OnClickListener() {
      public void onClick(View v) {
        // URLを開く
        url.onClick(textView[3]);
      }
    });
  }
}
&lt;/pre&gt;プログラムを実行すると...&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2akm72QTn8b5v-_KYfvJY8zCUkcgafEO75S9T_rH7FjPLX7KqiIFtIl0VnVpm-2-0SU8vS0229yT9k6kLxJDG38uUlYVMbYzIpsUCiiehdDcCd6kYC_Pfp8zFV6A6jJZCZkFZtYRay0k/s1600/spannabletest.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2akm72QTn8b5v-_KYfvJY8zCUkcgafEO75S9T_rH7FjPLX7KqiIFtIl0VnVpm-2-0SU8vS0229yT9k6kLxJDG38uUlYVMbYzIpsUCiiehdDcCd6kYC_Pfp8zFV6A6jJZCZkFZtYRay0k/s320/spannabletest.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
こんな感じ!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
参考サイト&lt;br /&gt;
&lt;a href=&quot;http://developer.android.com/intl/ja/reference/android/text/Spannable.html&quot;&gt;http://developer.android.com/intl/ja/reference/android/text/Spannable.html&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://developer.android.com/intl/ja/reference/android/text/style/CharacterStyle.html&quot;&gt;http://developer.android.com/intl/ja/reference/android/text/style/CharacterStyle.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://weide-dev.blogspot.com/feeds/3885115774560860344/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://weide-dev.blogspot.com/2010/04/spannable.html#comment-form' title='1 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/3885115774560860344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/3885115774560860344'/><link rel='alternate' type='text/html' href='http://weide-dev.blogspot.com/2010/04/spannable.html' title='Spannable で文字のマークアップ'/><author><name>weide</name><uri>http://www.blogger.com/profile/13173075712624032679</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2akm72QTn8b5v-_KYfvJY8zCUkcgafEO75S9T_rH7FjPLX7KqiIFtIl0VnVpm-2-0SU8vS0229yT9k6kLxJDG38uUlYVMbYzIpsUCiiehdDcCd6kYC_Pfp8zFV6A6jJZCZkFZtYRay0k/s72-c/spannabletest.png" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6432728779111196799.post-8009994426796420637</id><published>2010-04-08T23:45:00.000+09:00</published><updated>2010-04-11T10:57:39.539+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>Menu を使ってみた</title><content type='html'>Menu は&lt;br /&gt;
&lt;pre&gt;android.view.Menu
&lt;/pre&gt;を使用します&lt;br /&gt;
&lt;br /&gt;
さらに、Activity クラスの&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;public boolean onCreateOptionsMenu(Menu menu)&lt;/li&gt;
&lt;li&gt;public boolean onPrepareOptionsMenu(Menu menu)&lt;/li&gt;
&lt;li&gt;public boolean onOptionsItemSelected(MenuItem item)&lt;/li&gt;
&lt;li&gt;public boolean onMenuOpened(int featureId, Menu menu)&lt;/li&gt;
&lt;/ul&gt;などのメソッドを Override することで使用できます&lt;br /&gt;
&lt;br /&gt;
というわけで、Menu をいじってみた&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;サンプルプログラム&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MenuTest extends Activity {
  private static final int MENU_ID1 = Menu.FIRST;
  private static final int MENU_ID2 = Menu.FIRST + 1;
  private static final int MENU_ID3 = Menu.FIRST + 2;
  private static final int SUBMENU_ID1 = Menu.FIRST + 21;
  private static final int SUBMENU_ID2 = Menu.FIRST + 22;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main); 
  
    ((Button) findViewById(R.id.Button)).setOnClickListener(
      new OnClickListener() {
        public void onClick(View v) {
          // Menu の表示
          openOptionsMenu();
        }
      }
    );
  }

  // Option Menu が最初に表示される時に1度だけ呼び出される
  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    boolean ret = super.onCreateOptionsMenu(menu);

    // Menu にアイテムを追加
    menu.add(Menu.NONE, MENU_ID1, Menu.NONE, &quot;Menu1&quot;);
    // Menu に Icon 付きアイテムを追加
    menu.add(Menu.NONE, MENU_ID2, Menu.NONE, &quot;Menu2&quot;).setIcon(R.drawable.icon);

    // SubMenu を追加
    SubMenu sMenu = menu.addSubMenu(Menu.NONE, MENU_ID3, 3, &quot;Menu3&quot;);
    sMenu.add(Menu.NONE, SUBMENU_ID1, Menu.NONE, &quot;SubMenu1&quot;);
    sMenu.add(Menu.NONE, SUBMENU_ID2, Menu.NONE, &quot;SubMenu2&quot;);

    // Menu にショートカットキーを設定
    menu.findItem(MENU_ID1).setAlphabeticShortcut(&#39;a&#39;);
    menu.findItem(MENU_ID2).setAlphabeticShortcut(&#39;1&#39;);
    menu.findItem(MENU_ID3).setAlphabeticShortcut(&#39;s&#39;);

    return ret;
  }

  // Option Menu が表示される時の動作
  @Override
  public boolean onPrepareOptionsMenu(Menu menu) {
    return super.onPrepareOptionsMenu(menu);
  }

  // Option Menu のアイテムが選択された時の動作
  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
    boolean ret = super.onOptionsItemSelected(item);
    // 選ばれたアイテムの ID を取得
    switch(item.getItemId()) {
    case MENU_ID1:   // Menu1
      return true;
    case MENU_ID2:   // Menu2
      return true;
    case SUBMENU_ID1:   // Submenu1
      return true;
    default:
    }
    return ret;
  }

  // Option Menu が開かれた時の動作
  @Override
  public boolean onMenuOpened(int featureId, Menu menu) {
    return super.onMenuOpened(featureId, menu);
  }
}
&lt;/pre&gt;&lt;br /&gt;
プログラムを実行すると...&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSeG6BGPZjAppRR6TVQg4C-7RcQltlfXE0zqIfbsTcrOLH6-FVIDKL8rlJC_MN7E7tlPk3rj7xCMG7NVF5n0CXQD85jU-mr90nh73wbqgmH1ZmdPaYGkuSzusLWFCvL3fqmatXgtVQ7Ts/s1600/menutest.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSeG6BGPZjAppRR6TVQg4C-7RcQltlfXE0zqIfbsTcrOLH6-FVIDKL8rlJC_MN7E7tlPk3rj7xCMG7NVF5n0CXQD85jU-mr90nh73wbqgmH1ZmdPaYGkuSzusLWFCvL3fqmatXgtVQ7Ts/s320/menutest.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
SubMenu は...&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtD9aTpeDJHBA5mtYxrpnFd1mzvmNcIKsBVVA1z2m7gGtuoGNx7x22G_70fQYRiLzTTHHqjq1AIo8sL-3-SDeF8gDEyJIgnxh7DxdE8xZ5iFRB_dEx3T1-6ouclSKmt_aFk9nO834MzrQ/s1600/menutest2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtD9aTpeDJHBA5mtYxrpnFd1mzvmNcIKsBVVA1z2m7gGtuoGNx7x22G_70fQYRiLzTTHHqjq1AIo8sL-3-SDeF8gDEyJIgnxh7DxdE8xZ5iFRB_dEx3T1-6ouclSKmt_aFk9nO834MzrQ/s320/menutest2.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
こんな感じ!&lt;br /&gt;
&lt;br /&gt;
参考サイト&lt;br /&gt;
&lt;a href=&quot;http://developer.android.com/intl/ja/reference/android/view/Menu.html&quot;&gt;http://developer.android.com/intl/ja/reference/android/view/Menu.html&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://developer.android.com/intl/ja/reference/android/app/Activity.html&quot;&gt;http://developer.android.com/intl/ja/reference/android/app/Activity.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://weide-dev.blogspot.com/feeds/8009994426796420637/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://weide-dev.blogspot.com/2010/04/menu.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/8009994426796420637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/8009994426796420637'/><link rel='alternate' type='text/html' href='http://weide-dev.blogspot.com/2010/04/menu.html' title='Menu を使ってみた'/><author><name>weide</name><uri>http://www.blogger.com/profile/13173075712624032679</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSeG6BGPZjAppRR6TVQg4C-7RcQltlfXE0zqIfbsTcrOLH6-FVIDKL8rlJC_MN7E7tlPk3rj7xCMG7NVF5n0CXQD85jU-mr90nh73wbqgmH1ZmdPaYGkuSzusLWFCvL3fqmatXgtVQ7Ts/s72-c/menutest.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6432728779111196799.post-1008425890881429736</id><published>2010-04-08T23:39:00.001+09:00</published><updated>2010-04-08T23:39:53.065+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>EditText を使ってみた</title><content type='html'>EditText は&lt;br /&gt;
&lt;pre&gt;java.lang.Object
   ↳ android.view.View
     ↳ android.widget.TextView
       ↳ android.widget.EditText
&lt;/pre&gt;を使います&lt;br /&gt;
&lt;br /&gt;
というわけで, EditText を使ってみた&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;サンプルプログラム&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;import android.app.Activity;
import android.os.Bundle;
import android.text.InputType;
import android.widget.EditText;

public class EditTextTest extends Activity {
  EditText editText;
 
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.edittexttest);
  
    editText = (EditText) findViewById(R.id.EditText01);
  
    // EditText にテキストを設定
    editText.setText(&quot;EditTextTest&quot;);
  
    // EditText のインプットタイプを設定
    editText.setInputType(InputType.TYPE_CLASS_TEXT);
  
    // EditText の最大行の設定
    editText.setMaxLines(1);
  
    // EditText が空のときに表示させるヒントを設定
    editText.setHint(&quot;This is Hint&quot;);
  
    // EditText のカーソル位置を設定
    editText.setSelection(3);
    // EditText のテキストを全選択
    // editText.selectAll();
  
    // EditText のテキストを取得
    String str = editText.getText().toString();
  }
}
&lt;/pre&gt;&lt;br /&gt;
InputType には&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;数字入力&lt;/li&gt;
&lt;li&gt;アドレス入力&lt;/li&gt;
&lt;li&gt;パスワード入力&lt;/li&gt;
&lt;li&gt;オートコンプリート&lt;/li&gt;
&lt;li&gt;入力不可&lt;/li&gt;
etc... &lt;/ul&gt;といろいろあります&lt;br /&gt;
詳しくは &lt;a href=&quot;http://developer.android.com/intl/ja/reference/android/text/InputType.html&quot;&gt;InputTypeクラス&lt;/a&gt; を参照してください&lt;br /&gt;
&lt;br /&gt;
XMLリソースで指定することもできます&lt;br /&gt;
&lt;br /&gt;
XMLリソース&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;&amp;lt;EditText 
  android:hint=&quot;This is Hint&quot;
  android:id=&quot;@+id/EditText&quot; 
  android:inputType=&quot;text&quot; 
  android:layout_height=&quot;wrap_content&quot; 
  android:layout_width=&quot;wrap_content&quot;  
  android:text=&quot;EditTextTest&quot;&amp;gt;
&amp;lt;/EditText&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
XMLリソースで&lt;br /&gt;
InputTypeを指定するときは &lt;a href=&quot;http://developer.android.com/intl/ja/reference/android/widget/TextView.html#attr_android:inputType&quot;&gt;android:InputType&lt;/a&gt; を使います&lt;br /&gt;
&lt;br /&gt;
プログラムを実行すると...&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-j9ObrzgNdcxk2rntyVwLHU3I-Ks9B6lIx0WOd8Idj6wH7pl82tNQAbHHq23wqlDP6ALuFEOCiFMBUgTmNV7BC_ya6rBwdGe0PQkGYhvGgigHRgQ1EbS9l-VBObiAT1LYhQU1kmu6Sck/s1600/edittextest.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-j9ObrzgNdcxk2rntyVwLHU3I-Ks9B6lIx0WOd8Idj6wH7pl82tNQAbHHq23wqlDP6ALuFEOCiFMBUgTmNV7BC_ya6rBwdGe0PQkGYhvGgigHRgQ1EbS9l-VBObiAT1LYhQU1kmu6Sck/s320/edittextest.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href=&quot;file:///home/wiede/Document/android/document/EditTextTest/edittextest.png&quot;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
こんな感じ!&lt;br /&gt;
&lt;br /&gt;
また、ヒントは&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMNEB7OdkNur8ZP7WTrMKX2JJ70Xz8LAcEvYQb-heCbVek4qPBjrkEE0nq737IFW9PsYN1Qr5I7r-0hYUfh0ynik1OOOz820tOb3KON_0m2NVxQT085aSkmkclhWsFKrmHCFDryyLaCgw/s1600/edittextest_hint.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMNEB7OdkNur8ZP7WTrMKX2JJ70Xz8LAcEvYQb-heCbVek4qPBjrkEE0nq737IFW9PsYN1Qr5I7r-0hYUfh0ynik1OOOz820tOb3KON_0m2NVxQT085aSkmkclhWsFKrmHCFDryyLaCgw/s320/edittextest_hint.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
こんな感じで表示されます!&lt;br /&gt;
&lt;br /&gt;
参考サイト&lt;br /&gt;
&lt;a href=&quot;http://developer.android.com/intl/ja/reference/android/widget/EditText.html&quot;&gt;http://developer.android.com/intl/ja/reference/android/widget/EditText.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://weide-dev.blogspot.com/feeds/1008425890881429736/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://weide-dev.blogspot.com/2010/04/edittext.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/1008425890881429736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/1008425890881429736'/><link rel='alternate' type='text/html' href='http://weide-dev.blogspot.com/2010/04/edittext.html' title='EditText を使ってみた'/><author><name>weide</name><uri>http://www.blogger.com/profile/13173075712624032679</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-j9ObrzgNdcxk2rntyVwLHU3I-Ks9B6lIx0WOd8Idj6wH7pl82tNQAbHHq23wqlDP6ALuFEOCiFMBUgTmNV7BC_ya6rBwdGe0PQkGYhvGgigHRgQ1EbS9l-VBObiAT1LYhQU1kmu6Sck/s72-c/edittextest.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6432728779111196799.post-6196072596801016022</id><published>2010-04-07T20:49:00.002+09:00</published><updated>2010-04-07T20:53:37.622+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>ScrollView を使ってみた</title><content type='html'>ScrollView を使うには&lt;br /&gt;
&lt;pre&gt;java.lang.Object
  ↳ android.view.View
    ↳ android.view.ViewGroup
      ↳ android.widget.FrameLayout
        ↳ android.widget.ScrollView
&lt;/pre&gt;を使います&lt;br /&gt;
&lt;br /&gt;
というわけで、ScrollView をいじってみた&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;サンプルプログラム&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.ScrollView;

public class ScrollViewTest extends Activity {
  ScrollView scrollView;
  LinearLayout linearLayout;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    scrollView = new ScrollView(this);
    linearLayout = new LinearLayout(this);
    linearLayout.setOrientation(LinearLayout.VERTICAL);
  
    for (int i = 0; i &amp;lt; 12; i++) {
      Button button = new Button(this);
      button.setText(&quot;Button&quot; + (i+1));
      linearLayout.addView(button);
    }

    // ScrollView に View を追加
    scrollView.addView(linearLayout);

    setContentView(scrollView);
  }
}
&lt;/pre&gt;&lt;br /&gt;
ScrollView は1つしか View を設定できないので LinearLayout などにまとめる必要があります  XMLでまとめて設定することもできます  &lt;b&gt;XMLリソース&lt;/b&gt; &lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;&amp;lt;ScrollView
  android:id=&quot;@+id/ScrollView&quot;
  android:layout_height=&quot;fill_parent&quot;
  android:layout_width=&quot;fill_parent&quot;&amp;gt;
  &amp;lt;LinearLayout 
    android:id=&quot;@+id/LinearLayout&quot;
    android:orientation=&quot;vertical&quot;
    android:layout_height=&quot;fill_parent&quot;
    android:layout_width=&quot;fill_parent&quot;&amp;gt;
    &amp;lt;!-- 追加したいView --&amp;gt;
    &amp;lt;Button .../&amp;gt;
        ・
        ・
        ・
  &amp;lt;/LinearLayout&amp;gt;
&amp;lt;/ScrollView&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
プログラムを実行すると...&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzlVb_-wz4JrVKPAh7nPuKM03oPSZu_5V3tfYP2hLj3rH-lJoKVDvKg7c8nIUjD45JOjEteNVeNkkiErcfwAkxruj2_wQUE0mGJ9MSYEVO8ygER18ULaC0KhhGzfiyuOW9moZUN3-3zW4/s1600/scrollviewtest.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzlVb_-wz4JrVKPAh7nPuKM03oPSZu_5V3tfYP2hLj3rH-lJoKVDvKg7c8nIUjD45JOjEteNVeNkkiErcfwAkxruj2_wQUE0mGJ9MSYEVO8ygER18ULaC0KhhGzfiyuOW9moZUN3-3zW4/s320/scrollviewtest.png&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCN6LZe72QVKLrF5rWFSXpsIYQnfGz9zZyOy3BBF5zQsJsZ_Cu56nnyTqbStrGWw7yq0e_T8ahEvdRNISraZNMr0AIZY5U-fBsy_MypJlb4oTeIDTXQUStksFGEk-csgzVcNP-4814UlE/s1600/scrollviewtest2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCN6LZe72QVKLrF5rWFSXpsIYQnfGz9zZyOy3BBF5zQsJsZ_Cu56nnyTqbStrGWw7yq0e_T8ahEvdRNISraZNMr0AIZY5U-fBsy_MypJlb4oTeIDTXQUStksFGEk-csgzVcNP-4814UlE/s320/scrollviewtest2.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href=&quot;file:///home/wiede/Document/android/document/ScrollViewTest/scrollviewtest.png&quot;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
こんな感じ!&lt;br /&gt;
&lt;br /&gt;
右にスクロールバーが表示されて、上下に続きがあると少し暗くなっています&lt;br /&gt;
&lt;br /&gt;
参考サイト&lt;br /&gt;
&lt;a href=&quot;http://developer.android.com/intl/ja/reference/android/widget/ScrollView.html&quot;&gt;http://developer.android.com/intl/ja/reference/android/widget/ScrollView.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://weide-dev.blogspot.com/feeds/6196072596801016022/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://weide-dev.blogspot.com/2010/04/scrollview.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/6196072596801016022'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6432728779111196799/posts/default/6196072596801016022'/><link rel='alternate' type='text/html' href='http://weide-dev.blogspot.com/2010/04/scrollview.html' title='ScrollView を使ってみた'/><author><name>weide</name><uri>http://www.blogger.com/profile/13173075712624032679</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzlVb_-wz4JrVKPAh7nPuKM03oPSZu_5V3tfYP2hLj3rH-lJoKVDvKg7c8nIUjD45JOjEteNVeNkkiErcfwAkxruj2_wQUE0mGJ9MSYEVO8ygER18ULaC0KhhGzfiyuOW9moZUN3-3zW4/s72-c/scrollviewtest.png" height="72" width="72"/><thr:total>0</thr:total></entry></feed>