Home > Archives > 2012-06

2012-06

[Android] Spinnerの基本的な使い方

Androidではコンボボックスに相当するコントロールとして「Spinner(スピナー)」というものが存在します。
使い方を簡単にまとめてみました。
 

レイアウトファイルによる実装

Spinnerを配置し、entries属性に配列要素を指定します。
ここで設定した配列要素がSpinnerのコンテンツとして表示されます。配列要素については事項で説明します。

main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    
    <Spinner
        android:id="@+id/spinner"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:entries="@array/items" />

</LinearLayout>

 

/res/valuesにarrays.xmlというファイルを作成し、スピナーに設定する配列要素(アイテム項目)を定義します。
なお、わざわざ新しいファイルを作成しなくてもstrings.xmlの中に記述することも可能ですが、今回は別ファイルを使うことにしました。

arrays.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="items">
        <item>item1</item>
        <item>item2</item>
        <item>item3</item>
        <item>item4</item>
        <item>item5</item>
        <item>item6</item>
        <item>item7</item>
        <item>item8</item>
        <item>item9</item>
    </string-array>
</resources>

 

Continue reading

[Android] レイアウトでViewを両端に配置する方法

レイアウトでViewを両端に配置する方法はいくつか存在しますが、ここで紹介する方法が一番シンプルで分かりやすい気がします。

方法はコードを見てもらえば一目瞭然ですが、配置する2つのViewの真ん中に「android:layout_weight」を”1″にしたViewを埋め込むだけです。
 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="10dp">
        
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="左" />

        <View 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1" />
        
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="右" />

    </LinearLayout>

</LinearLayout>

 

Continue reading

[Android] エミュレータと外部とのソケット通信

ソケット通信のテストを行う際にエミュレータと外部との間で通信できると何かと便利ですが、エミュレータはエミュレータ内部で閉じたネットワークを形成しておりデフォルトでは外部との通信ができない状態になっています。

外部との通信を行うには以下の手順を踏む必要があります。

  1. エミュレータ起動
  2. telnetでエミュレータに接続
  3. redirコマンドでポートフォワード

 

Continue reading

[Android] テキストへのリンク設定

TextViewに表示したURLにリンクを張るには次の2通りの方法があります。

  • レイアウトファイルでautolink属性を使う
  • プログラムでHTMLタグを埋め込む

 

レイアウトファイルでautolink属性を使う

TextViewタグにautolink属性を指定することでリンクを張ることができます。

<textview
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:autolink="web"
    android:text="http://google.co.jp" />

 
autolink属性ではURL以外のリンクを張ることもできます。
設定値およびリンク種別の対応は次の通りです。

設定値 リンク種別
web URL
email メールアドレス
phone 電話番号
map 住所
all 上記全て

 

Continue reading

[Java] 現在日時の取得

現在日時の取得には次のような方法があります。

  • Dateクラスを使って取得
  • Calendarクラスを使って取得

 

Dateクラスを使って取得

オブジェクト作成時にDateクラスの引数なしコンストラクタを使うことで現在時刻が設定されたDateオブジェクトを取得できます。

public String getCurrentDateString()
{
    //==== 現在時刻を取得 ====//
    Date date = new Date();

    //==== 表示形式を設定 ====//
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");

    return sdf.format(date);
}

 

Continue reading

[Android] メニュー処理

メニューボタンを押したときに出てくるメニューの実装方法を簡単にまとめてみました。
 

メニュー表示

Activityクラスの onCreateOptionsMenu() をオーバーライドし、この中にメニュー表示処理を実装していきます。
このメソッドは引数としてMenuオブジェクトを受け取るので、このオブジェクトに対してメニュー項目を追加していきます。

なお、このメソッドはメニューボタン押下時に一度だけ呼び出されます。

public class HogeActivity extends Activity
{
    //==== メニューID ====//
    private static final int MENU_ITEM1 = Menu.FIRST;
    private static final int MENU_ITEM2 = Menu.FIRST + 1;

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

    @Override
    public boolean onCreateOptionsMenu(Menu menu)
    {
        menu.add(Menu.NONE, MENU_ITEM1, Menu.NONE, "item1");
        menu.add(Menu.NONE, MENU_ITEM2, Menu.NONE, "item2");
        return super.onCreateOptionsMenu(menu);
    }
}

 

Continue reading

Home > Archives > 2012-06

Search
Feeds
Meta
人気の記事

Return to page top