繁体   English   中英

为每个列表项创建具有costum背景的列表

[英]Create a list with a costum background for every list item

我刚开始使用Android,但是我在网上搜索时找不到解决我问题的方法:

我有一个哈希图,其中的关键是课程的名称,值是截止日期前的天数。 我想从此哈希图中列出一个列表,其中如果我少于1/2天,则该项目的背景颜色为红色,否则为绿色。

我开始使用阵列适配器,但找不到解决方案:

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
    R.layout.list_costum_text, R.id.list_content, values);

    setListAdapter(adapter);

目前,“值”只是一个包含课程名称的数组。 我现在正在查看Costum适配器,但是它们仍然有一些问题

编辑:

如果我遵循有关vogella的教程,则可以完成这项工作(我正在修改主要活动):

import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;

public class MainActivity extends ListActivity {
  public void onCreate(Bundle icicle) {
  super.onCreate(icicle);

   String[] values = new String[] { "Android", "iPhone", "WindowsMobile",
    "Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X",
    "Linux", "OS/2" };

   ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
    R.layout.list_costum_text, R.id.red_list, values);

setListAdapter(adapter);




setContentView(R.layout.activity_main);
 }
 }

其中activity_main.xml是ListView布局,list_costum_text包含两个编辑文本(一个是red_list)。

我无法理解自定义适配器的工作原理,也因为无法在主要活动中对其进行测试!

您应该通过扩展ArrayAdapter来创建自定义适配器,然后编写自己的getView()方法。

征求意见后的其他信息

任何适配器大致所做的是:它为每个项目获取xml布局,进行填充,然后使用值填充UI元素。

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    LayoutInflater inflater = (LayoutInflater) context
    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View rowView = inflater.inflate(R.layout.rowlayout, parent, false);
    TextView textView = (TextView) rowView.findViewById(R.id.label);
    ImageView imageView = (ImageView) rowView.findViewById(R.id.icon);
    textView.setText(values[position]);
    // Change the icon for Windows and iPhone
    String s = values[position];
    if (s.startsWith("iPhone")) {
      imageView.setImageResource(R.drawable.no);
    } else {
      imageView.setImageResource(R.drawable.ok);
    }
return rowView;

}

这只是从http://www.vogella.com/articles/AndroidListView/article.html提取的示例,但您会明白的。 不难

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM