【问题标题】:Setting of background color of Each row item of listiview in androidandroid中listview每一行项的背景颜色设置
【发布时间】:2014-03-26 10:23:43
【问题描述】:

当数据使用 jsonparser 动态地来自 mysql 数据库并通过 simpleAdapter 设置列表时,我们如何设置列表视图中每个行项的背景颜色 vaule 出现在文本框中,取决于我必须在 listview 列表中设置每个 roe 的背景。

【问题讨论】:

  • 您可以根据值为不同的行项目膨胀不同的布局。或者您可以使用带有 setter 和 getter 的模型类并适当地设置颜色
  • 为什么为了改变颜色而膨胀不同的布局?为什么不简单地设置列表项视图的背景颜色?

标签: android mysql json listview


【解决方案1】:

使用 SimpleAdapter 无法做到这一点。您应该从 BaseAdapter 或 CursorAdapter 派生一个新类,然后您可以自定义视图的颜色。

【讨论】:

    【解决方案2】:

    您只需在创建 Listview 时使用此自定义适配器,然后您将在此块中编写代码...

    在您的活动中使用此代码...

      CustomAdapter mAdapter = new CustomAdapter(this, R.layout.listitem, mListItems);
      mPullRefreshListView.setAdapter(mAdapter);
    

    然后在这里你替换你的布局......

    public class CustomAdapter extends ArrayAdapter<Sample> {
    
    public ArrayList<Sample> mlist;
    public Context context;
    public LayoutInflater inflater;
    
    public CustomAdapter(Context context, int resource, ArrayList<Sample> mlist) {
        super(context, resource);
        this.mlist = mlist;
        this.context = context;
        inflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }
    
    @Override
    public int getPosition(Sample item) {
        return super.getPosition(item);
    }
    
    @Override
    public Sample getItem(int position) {
        return mlist.get(position);
    }
    
    @Override
    public int getCount() {
        return mlist.size();
    }
    
    @Override
    public long getItemId(int position) {
        return super.getItemId(position);
    }
    
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        convertView = inflater.inflate(R.layout.listitem, null);
        LinearLayout layout = (LinearLayout)convertView.findViewById(R.id.linearlayoutSample);;
        TextView text1 = (TextView) convertView.findViewById(R.id.item1);
        TextView text2 = (TextView) convertView.findViewById(R.id.item2);
        layout.setBackgroundColor(Color.GREEN);
        text1.setText(mlist.get(position).getListitem1());
        text2.setText(mlist.get(position).getListitem2());
        text2.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                // you just put your Logic here And use this custom adapter to
                // load your Data By using this particular custom adapter to
                // your listview
    
            }
        });
        return convertView;
    }
    
     }
    

    【讨论】:

      猜你喜欢
      • 2011-05-09
      • 2013-08-06
      • 1970-01-01
      • 1970-01-01
      • 2011-08-28
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 2013-11-06
      相关资源
      最近更新 更多