0

カスタムリストビューアダプタがあります。文字列配列からデータを入力できますが、文字列がいくつあるかを知っておく必要があります。

これはリストビューのアクティビティです。

public class MainListActivity extends ListActivity {

    private TextView myText;
    private ArrayList<ListData> catalog;
    String[] names = { some names };
    String[] desc = {some description };
    int[] cost = { prices };
    int[] img = { images };

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        myText = (TextView) findViewById(R.id.titleMain);

        catalog = new ArrayList<ListData>();
        for (int i = 1; i <= 6; i++) {
            catalog.add(new ListData(names[i - 1], cost[i - 1], img[i - 1],
                    desc[i - 1]));
        }

        CatalogAdapter catAdapter;
        catAdapter = new CatalogAdapter(this, catalog);
        setListAdapter(catAdapter);
    }
}

ここで、要素の数を指定する必要があります。

for (int i = 1; i <= 6; i++) {
    catalog.add(new ListData(names[i - 1], cost[i - 1], img[i - 1],
    desc[i - 1]));

これはListDataアクティビティです。

public class ListData {
    String title;
    int price;
    int image;
    String discribe;

    ListData(String _title, int _price, int _image, String _discribe) {
        title = _title;
        price = _price;
        image = _image;
        discribe = _discribe;
    }
}

また、AdapterActivityもありますが、この2つのアクティビティで何かを変更する必要があると思います。では、配列内の要素の数を宣言しないように、以下のコードをどのように変更する必要がありますか?助けてください。

4

1 に答える 1

1

のような配列String[]は、そのようなことを行うようには設計されていません。代わりにListまたはを使用してください。ArrayListサイズを宣言する必要はありません。

(私があなたをよく理解していて、のサイズnamesが一定ではないはずです。)

于 2012-04-08T23:40:49.927 に答える