私はAndroidを初めて使用し、簡単な質問があります。現在、ユーザーがさまざまな製品を追加、削除、閲覧できる製品アプリケーションに取り組んでいます。アプリケーションは、事前定義されたXMLベースのレイアウトファイルをテンプレートとして使用し、画面全体に表示して現在の製品の詳細を表示します。ユーザーが新製品を追加するときに、同じレイアウトファイルを再利用したいのですが、新製品の情報を入力します。また、以前に追加した製品(ArrayListなど)を保持したいので、ユーザーは水平方向(左から右または右から左)にスライドしてこのリストを参照できます。ここで、各製品(ビュー、サブビューなど)を表すために使用するのに最適なものと、同じXMLベースのレイアウトファイルを再利用してさまざまな製品の詳細を表示する方法について説明します。私の英語を失礼し、助けてくれてありがとう
質問する
890 次
2 に答える
1
ArrayAdapterを拡張する新しいクラスを作成してから、getView()メソッドをオーバーライドして、カスタムレイアウトを拡張できます。getView()は、単一行のビューを返します。このようにして、レイアウトを再利用できます。したがって、次のようになります。
public class ProductAdapter extends ArrayAdapter<Product> {
private LayoutInflater li;
public ProductAdapter(Context context, List<Product> products) {
super(context, 0, products);
li = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// Get the product of the position
Product product = getItem(position);
View v = convertView;
if ( v == null ) {
// Your custom layout file for a single row in the list.
v = li.inflate(R.layout.product_row, null);
}
// Populate your view here. Use v.findViewById().
return v;
}
}
ListActivityでリストを表示するには、次を使用します。
// The variable products is your initial list of products.
ProductAdapter adapter = new ProductAdapter(this, products);
setListAdapter(adapter);
製品を追加するときに、adapter.add()(リストの最後に製品を追加する場合)またはinsert()(製品リストのどこに製品を追加するかを指定する場合)を呼び出すことにより、これをArrayAdapterに追加できます。 ProductAdapterに新しいproduct)メソッドを挿入します。その後、adapter.notifyDataSetChanged()を呼び出して、データが変更され、リストを更新する必要があることをアダプターに通知できます。
于 2012-04-14T11:04:57.873 に答える