我的愿景是创建一个颜色编码的listView,我希望在每个项目的布局中都有一个细长的颜色条。这个栏应该是基于我传递给活动的int的某种颜色。我如何创建这样一个栏(实质上是一个填充的矩形)并设置其颜色。目前,我正在为我的列表使用自定义布局,并使用带有ArrayList的SimpleAdapter。在Android中创建颜色编码列表视图
我知道我将不得不使用
if (integerForColor == someNumber)
//set the color of the shape, bar
我相信这是我根本无法在此刻想到的,或者必须缺少基本的简单的一件事。预先感谢您的努力。
编辑1:
试图解码一些在这里的答案,我意识到,你们需要对我如何建立我的列表我的代码:
public class AddScreen extends Activity implements OnClickListener,
OnItemClickListener, OnItemLongClickListener {
SimpleAdapter adapter;
List<HashMap<String, String>> painItems = new ArrayList<HashMap<String, String>>();
ListView listthings;
public void onCreate(Bundle savedInstanceState) {
from = new String[] { "row_1", "row_2" };
to = new int[] { R.id.row1, R.id.row2 };
adapter = new SimpleAdapter(this, painItems, R.layout.mylistlayout,
from, to);
listthings.setAdapter(adapter);
}
我已添加getView()方法:
public View getView (int position, View convertView, ViewGroup parent){
convertView.setBackgroundColor(R.drawable.red);
return convertView;
//I have no inflater as of now...
}
编辑2:根据@huntsfromshadow的建议,我创建了一个新的活动并重写了getView()方法。
//Imports
public class Adapter extends SimpleAdapter{
public Adapter(Context context, List<? extends Map<String, ?>> data,
int resource, String[] from, int[] to) {
super(context, data, resource, from, to);
// TODO Auto-generated constructor stub
}
@Override
public View getView(int position, View convertView, ViewGroup parent){
View row = convertView;
row.setBackgroundColor(0xFF0000FF);
return row;
}
}
不幸的是,它仍然无法正常工作。
我仍然不知道如何做到这一点。你能否为这种情况提供一些示例代码? – Kgrover
http://www.softwarepassion.com/android-series-custom-listview-items-and-adapters/是如何创建自定义阵列适配器的一个很好的例子。数组,游标等基本都是一样的。它们都是通过覆盖所需的适配器的方法来工作的(通常是getView) – huntsfromshadow
你能看看我的更新代码并帮助我吗? – Kgrover