私のXMLファイルの形式は次のとおりです。
LinearLayout
ScrollView
RelativeLayout
LinearLayout
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_margin="5dip"
android:layout_weight="30" >
</ListView>
LinearLayout
ここに私の BaseAdapter クラスがあります
public class APIQuickCheckoutProductProvider extends BaseAdapter {
private Activity activity;
private ArrayList<HashMap<String, String>> data;
private static LayoutInflater inflater = null;
public APIQuickCheckoutProductProvider(Activity a, ArrayList<HashMap<String, String>> d) {
activity = a;
data = d;
inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public int getCount() {
return data.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View vi = convertView;
if (convertView == null)
vi = inflater.inflate(R.layout.product_item, null);
TextView brand = (TextView) vi.findViewById(R.id.brands);
TextView quantity_name = (TextView) vi.findViewById(R.id.quantity_name);
TextView price = (TextView) vi.findViewById(R.id.price);
HashMap<String, String> product = new HashMap<String, String>();
product = data.get(position);
// Setting all values in listview
brand.setText(product.get(APIQuickCheckout.KEY_BRAND));
quantity_name.setText(product.get(APIQuickCheckout.KEY_QUANTITY_NAME));
price.setText(product.get(APIQuickCheckout.KEY_PRICE));
return vi;
}
}
アダプターを設定するメインクラスは次のとおりです。
adapter = new APIQuickCheckoutProductProvider(APIQuickCheckout.this, productList);
lv.setAdapter(adapter);
adapter.notifyDataSetChanged();
そして最後に、リストビューに設定した個々の行があります
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="5dip"
android:layout_weight="7"
android:weightSum="6" >
<TextView
android:id="@+id/brands"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="3" />
<TextView
android:id="@+id/quantity_name"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="3" />
</LinearLayout>
<LinearLayout
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1" />
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="5dip"
android:layout_weight="2"
android:weightSum="6" >
<TextView
android:layout_width="wrap_content"
android:layout_height="0dip"
android:layout_weight="3" />
<TextView
android:id="@+id/price"
android:layout_width="wrap_content"
android:layout_height="0dip"
android:layout_weight="3" />
</LinearLayout>
</LinearLayout>
しかし、上記のコードを試してみると、最初の製品が表示され、2 番目の製品の上部しか表示されず、それ以降は何も表示されません。ListView
では、新しい製品を追加するときに動的に高さを変更するにはどうすればよいですか? それらのすべてを表示するために。