如何在同一个Activity中更改第二个布局中的值?

时间:2010-12-19 09:46:18

标签: android layout simpleadapter

我的方案是我有一个活动,显示存储在SQLite DB中的游标。主要布局包含顶部的textview和listview。然后我使用simplecursoradapter将游标填充到listadapter并将listadapter放入listview。 simplecursoradapter使用另一种布局。现在的问题是,当我使用simplecursoradapter时,我将三列列入listview,例如:项目名称,日期和价格。如果我不改变这些值,那就没关系。

实际上我想在价格上添加一些字符串并形成新的字符串,如货币符号。根据我的理解,我们只能将setContentView用于一个布局而不是两个布局。 我还尝试填充新的布局并设置值但是失败了

LayoutInflater inflater =(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 查看textEntryView = inflater.inflate(R.layout.itemlist,null); TextView price =(TextView)textEntryView.findViewById(R.id.price); price.setText(currency + c.getString(4).toString());

即使语法和运行应用程序也没有问题。但是,当我运行应用程序并检查列表视图时,价格仍然只显示价格而不添加货币符号。我只能在主布局下添加货币符号,而不是在simplecursoradapter中使用的第二种布局。

实际上,在用户首选项中选择货币,我使用共享首选项来检索其值并在游标中添加价格值。似乎simplecursoradapter使用不同的布局,所以不能这样做。

有没有人对此案有疑问?

如果为类似方法提供方法和代码,我将不胜感激。

谢谢!

2 个答案:

答案 0 :(得分:0)

我不确定我是否100%关注您的问题,所以这可能不是您正在寻找的答案。

如果您希望控制项目布局在列表视图中的显示方式,则应自行制作ArrayAdapter的自定义实现:

  

管理ListView的ListAdapter   由任意数组支持   对象。 (...)使用其他东西   比数组显示的TextViews,   例如,ImageViews,或者有   除了toString()之外的一些数据   结果填充视图,覆盖   getView(int,View,ViewGroup)来   返回你想要的视图类型。

如果您只是谷歌搜索custom arrayadapter example,您应该找到足够的示例来向您展示如何实施此功能。两个这样的例子是:

祝你好运:)

答案 1 :(得分:0)

最后我使用bindview来解决我的问题。在我的问题中,我已经提到过,我使用simplecursoradapter从SQLiteDB中获取数据而不是数组。我知道arrayadapter有效,但它对SQLite不起作用。在我扩展baseadapter以设计我自己的文本视图之前添加自定义视图之前。如果有大量数据,它可以工作但速度太慢。所以simplecursoradapter更有效。

为了我自己的目的,我扩展了simplecursoradapter并覆盖了bindview。它适用于我需要的东西。

感谢您对arrayadapter的帮助和链接

相关问题