作成中のカスタム テーブル行があります。XML ファイルを使用して、単一の行がどのように見えるかを定義したいと考えています。クラスに TableRow を拡張させ、それ自体を XML で定義されているファイルとして定義したいと考えています。XML ファイルは次のようになります。
<TableRow xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<TextView
android:id="@+id/label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingRight="10dp"
android:text="@string/loading"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/data"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="right"
android:text="@string/loading"
android:textAppearance="?android:attr/textAppearanceLarge" />
</TableRow>
コードは次のようになります。
public class SpecialTableRow extends TableRow {
public SpecialTableRow (Context context) {
}
}
クラス全体がtableRowであると想定するためにコンストラクターに入れることができるものはありますか? あるいは、よりうまく機能する別の構造はありますか?私が考え出した最高のものはこれです:
TableRow tr=(TableRow) LayoutInflater.from(context).inflate(R.layout.text_pair,null);
TextView mFieldName=(TextView) tr.findViewById(R.id.label);
TextView mValue=(TextView) tr.findViewById(R.id.data);
tr.removeAllViewsInLayout();
addView(mFieldName);
addView(mValue);
ただし、これにより XML からレイアウト パラメータが削除されます。もっと良いものはありますか?