【问题标题】:ArrayList inside ArrayList - android adapter?ArrayList 内的 ArrayList - android 适配器?
【发布时间】:2014-05-19 17:59:30
【问题描述】:

所以,我有 Client 类,它存储 Category ArrayList(Client 可以有几个类别)。每个类别存储 Expense ArrayList。因此,每个类别都可能有一些费用。

问题是:我想为一个 listView 设置适配器,我们将在其中打印出所有费用。我知道如何为一个 ArrayList 创建适配器,但如果我们在 ArrayList 中有 ArrayList - 那我就迷路了。

您可以与我分享任何提示或技巧吗?

【问题讨论】:

  • 您想将特定类别的费用加在一起,然后为每个类别做同样的事情吗?
  • 你不应该把 ListView 放在 ListView 里面,因为它可能会导致一些滚动问题。例如,如果您在 AdapterViewFlipper 中使用 GridView,则可以使用我提供的代码作为答案。

标签: java android listview arraylist


【解决方案1】:

【讨论】:

  • 您可以编写自己的适配器。扩展BaseAdapter,并按照你的意愿实现其中的所有方法。
【解决方案2】:

您可以在另一个适配器中使用一个适配器。我在一个虚拟项目中使用了这种方法。我把下面的代码作为起点。

class Category{ List<Expense> expenseList;    }

//this adapter will be used in Activity
class CategoryAdapter extends ArrayAdapter<Category>{
    //your other adapter code here
    ArrayAdapter<Expense> expenseAdtr =new ExpenseAdapter(context, category.getExpenseList());
    expenseListView.setAdapter(expenseAdtr );
    expenseListView.setOnClickListner(....);
}

//this adapter will be used inside CategoryAdapter
class ExpenseAdapter extends ArrayAdapter<Expense>{
    //your adapter code here, should have no issue here        
}
class MyActivity extends Activity{
    //somewhere onCreate or ..... 
    List<Category> categoryList;
    ArrayAdapter<Category> categoryAdtr =new CategoryAdapter(context, categoryList);
    expenseListView.setAdapter(categoryAdtr);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-21
    • 1970-01-01
    • 1970-01-01
    • 2016-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-25
    相关资源
    最近更新 更多