更新:誤ってlist.xmlに2回貼り付けて申し訳ありません、私の質問は正しかったです...カスタムListViewアダプタからTableLayoutを正しくフォーマットするにはどうすればよいですか?
ArrayAdapterを拡張するクラスを作成しました。ここではgetViewをオーバーライドし、そこでコントロールを取得します私のrow.xmlに、そしてsetTextを私の値と適切に組み合わせてください。これはすべて正常に動作し、私はここで問題はありません。
私がしたかったのは、私の出力を表形式にしているので、私は列などに広げて、それらをすべて整列させることができます。ここで私の問題を開始してください。
私は2つのxmlファイルを残しています.1つは私のリスト用、もう1つは行用です。リストでは、ListViewを除いて、何もないTableLayoutを定義します。私のstretchColumnsプロパティを設定する方法ではありませんか? row.xmlではTableRowを定義するだけなので、TableLayoutの開始タグと終了タグの間に作成されたTableRowsタグの読み込みを期待して、すべてがうまくいくでしょう。
それは、私が結果を見ることができるという意味ではうまくいきますが、TableRowsのすべてが残りのテーブルや他の行と揃っていません。彼らはちょうどすべてが自分自身のコンテンツに合わせるために6倍になり、彼らは私のTableLayoutの一部ではないようです。
私は手で私は私のカスタムアダプタに膨張することを期待する、とTableLayoutタグの間にそれを置く(とリストビューを除く)となるXMLを作成した場合、すべてが列が並ぶ、完全に表示するなど
おそらく、私は何か間違っている、あるいはおそらく私はこのようにTableLayoutを使用すべきではなく、別のやり方でやるべきです。
本当にありがとうございました。年齢に関係なく困っています。
これは、これはここに
<?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" >
<Button
android:id="@+id/addCallPart"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onClick"
android:text="Button" />
<TableLayout
android:id="@+id/tableLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="5dip"
android:paddingRight="5dip"
android:stretchColumns="1" >
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
</TableLayout>
<TextView
android:id="@id/android:empty"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="There are no records." />
</LinearLayout>
が私のコードで、これはすべての[OK]を動作しますが、私、私のList.xmlのあるrow.xml
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/tvQty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:text="QTY"
android:textSize="12dp"
android:textStyle="bold" />
<TextView
android:id="@+id/tvPartName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:paddingLeft="10dip"
android:text="Part desererregre"
android:textSize="12dp"
android:textStyle="bold" />
<TextView
android:id="@+id/tvPartCode"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:paddingLeft="10dip"
android:text="PART CODE"
android:textSize="12dp"
android:textStyle="bold" />
</TableRow>
です問題をより明確にするためにそれを含めてください。
public class CallPartAdapter extends ArrayAdapter<CallPart> {
private final Context context;
private final List<CallPart> values;
public CallPartAdapter(Context context, List<CallPart> values) {
super(context, R.layout.row, values);
this.context = context;
this.values = values;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View rowView = inflater.inflate(R.layout.row, parent, false);
TextView textView1 = (TextView) rowView.findViewById(R.id.tvQty);
TextView textView2 = (TextView) rowView.findViewById(R.id.tvPartName);
TextView textView3 = (TextView) rowView.findViewById(R.id.tvPartCode);
textView1.setText(Integer.toString(values.get(position).Qty));
textView2.setText(values.get(position).PartName);
textView3.setText(values.get(position).PartCode);
return rowView;
}
}