2013年8月13日火曜日

同じ構成のレイアウトを別ファイルにしてincludeで使う

たまにリストにするような不定数ではないけど、同じようなView構成が続く画面レイアウトがあります。例えばこんなやつ
こんなときはまず繰り返す部分のみのxmlファイルを作ります。
child.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content">
  <TextView
      android:id= "@+id/title"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:text= "Title"/>
  <LinearLayout
      android:orientation="horizontal"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="名前:"/>
    <EditText
        android:id="@+id/name"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"/>
  </LinearLayout>
  <LinearLayout
      android:orientation="horizontal"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="性別:"/>
    <EditText
        android:id="@+id/gender"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight= "1"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=" 年齢:"/>
    <EditText
        android:id="@+id/age"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight= "1"/>
  </LinearLayout>
</LinearLayout>
そしてそのxmlをincludeして画面を作ります。
<?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" >
    <include layout="@layout/child" android:id="@+id/menber1"/>
    <include layout="@layout/child" android:id="@+id/menber2"/>
    <include layout="@layout/child" android:id="@+id/menber3"/>
</LinearLayout>
各includeに同名のidのViewが出来るので、アクセスする場合には必ず親を指定してからアクセスします。
((TextView)findViewById(R.id.menber1).findViewById(R.id.title)).setText("班長");
((TextView)findViewById(R.id.menber2).findViewById(R.id.title)).setText("メンバーA");
((TextView)findViewById(R.id.menber3).findViewById(R.id.title)).setText("メンバーB");
こういう変化しない内容はxmlに書きたいところですが、残念ながらinclude内のViewにはコードでしかアクセスできません。

2013年8月7日水曜日

Googleウォレットに税務情報を入力してください

久々にGoogleウォレットを見てみたら税務情報を入力してくださいと出てました
支払いを受け取るには更新が必要みたいなんでこちらを押して入力してみることにします
拙い英語力でやったのであってるかどうか、ここ見てやる人は参考程度にしておいてください
すると何も送信されませんでした(そりゃそうだ)と出たんで税務情報の送信を押します
アメリカに住んでるのか?アメリカの企業か?みたいなことを聞かれるんでNo!で次へ
国を選択して、住所は登録したのが自動で入ってるんで違ってたら入力、あと下の該当するのを選べ的なのがあるんで個人ならindividualを選択
あとは下のほうで署名して送信
これで完了のようです