如何在android中使用带有文本的三列自定义列表

时间:2013-11-30 17:56:39

标签: android android-layout android-listview custom-lists

这是我的代码,在这段代码中我将数据放入字符串数组中并通过循环将所有数据放入名为AcerList的列表中并将该列表提供给适配器。通过获取上一个类的索引,我正在检查条件,根据该条件我给出了适配器,如果它是合法的。

ListView lstView;
String AcerProductsArray[] = { "Acer Aspire V5-571 Ultra Book i3","AceAspireS3391i3","Acer Aspire S3-391 i3"};
ArrayList<String> AcerList = new ArrayList<String>();
ArrayAdapter<String>  AcerAdapter;
protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.selectedcategory);

        lstView = (ListView) findViewById(R.id.list);
        try{
            for(int i=0;i<AcerProductsArray.length;i++)
            {
                AcerList.add(AcerProductsArray[i]);
            }catch(){}

AcerAdapter =  new ArrayAdapter<String> (this, android.R.layout.simple_list_item_1, AcerList);
Bundle extras = getIntent().getExtras();
        int index = 0;
        index = extras.getInt("index");
        if(index == 0){
            lstView.setAdapter(AcerAdapter);
                   AcerAdapter.notifyDataSetChanged();
        }

这是我的输出。但我还想使用自定义列表设置价格和详细信息。在xml文件中,我只有一个列表和三个textViews。我没有使用任何数据库所有的硬编码程序。请帮我解决这个..

enter image description here

1 个答案:

答案 0 :(得分:0)

字符串数组不适合您。定义一个类,例如Acer,并定义该类的所有必需属性。然后将Acer对象的数组传递给适配器,而不是字符串。例如

Acer班:

    public class Acer{
        String name;
        String price;
        String details;

        public Acer(String _name, String _price, String _details){
            this.name =_name;
            this.price = _price;
            this.details = _details;
        }
    }

然后将Acer对象数组传递给适配器,您将能够访问适配器内对象的所有属性。例如,如果您想要所选项目的价格,您可以在适配器中执行此操作:

    array_of_acers.get(position).price;

此外,您还需要一个自定义数组适配器。自定义适配器的自定义列表视图的一个简单示例是here