我正在编写一个应用程序,它从数据库中获取字符串并将其显示在列表中,我希望每个条目都是特定的卡片,就像在Google即时中一样。
我必须创建TextView的代码如下:
SharedPreferences prefs = getSharedPreferences("Peixoto2Go", MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
Database db = new Database(this);
TextView totalTip = (TextView) findViewById(R.id.totalTipText);
DecimalFormat df = new DecimalFormat("#,###,##0.00");
totalTip.setText("Total Tip: $" + df.format(prefs.getFloat("totalTip", (float) 0.00)));
int index = prefs.getInt("IDo", 0);
View orderList = findViewById(R.id.orderList);
for(int i=0;i<index;i++) {
TextView order = new TextView(this);
order.setText(db.getOrder(i));
order.setPadding(30,30,30,30);
order.setTextSize(22);
order.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT));
((LinearLayout) orderList).addView(order);
}
修改它的最佳方法是什么,以便每次for循环执行其操作时,创建的视图都是单独的卡?
答案 0 :(得分:0)
为了实现与Google类似的功能,您基本上需要的是自定义ListView。 为此,您需要实现自定义适配器(BaseAdapter),然后使用适配器为每行充气自定义布局。
Here is a good tutorial on how to create Custom ListViews
并且记住,在ListViews中使用ViewHolders来提高ListView的性能是一个很好的做法。 Click here to get more information on ViewHolders.