【问题标题】:change textcolor of custom listview clicked item run time更改自定义列表视图单击项目运行时间的文本颜色
【发布时间】:2016-06-08 16:03:44
【问题描述】:

我正在使用使用 Base Adapter 的自定义列表视图。我想更改仅单击的文本视图项的文本颜色。

单击列表项对话框将打开,单击确定按钮希望更改列表视图中仅单击项的文本颜色。并非所有列表视图的项目。

我已经说过我不想改变整个列表视图项的颜色。

我只想改变点击项目的文本视图的颜色。

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    DataBaseAdapter baseAdapter = new DataBaseAdapter(context);

    if (convertView == null) {

        Log.d("tag123", "in getview");
        convertView = inflater.inflate(R.layout.list_item_expense, null);
        viewHolder = new ViewHolder();
        viewHolder.tvDate = (TextView) convertView
                .findViewById(R.id.tvDateExpense);
        viewHolder.ivCatExp = (ImageView) convertView
                .findViewById(R.id.ivCatExpense);
        viewHolder.tvPayee = (TextView) convertView
                .findViewById(R.id.tvPayeeExpense);
        // viewHolder.tvAmt = (TextView) convertView
        // .findViewById(R.id.tvAmtExpense);
        viewHolder.tvBy = (TextView) convertView
                .findViewById(R.id.tvByExpense);

        viewHolder.tvListItemExpense = (com.rey.material.widget.TextView) convertView
                .findViewById(R.id.tvListItemExpense);

        convertView.setTag(viewHolder);

    } else {
        Log.d("tag123", "in getview else condition");
        viewHolder = (ViewHolder) convertView.getTag();
    }

    viewHolder.tvDate.setText(installments.get(position));

    viewHolder.tvPayee.setText(String.valueOf(amount));

    viewHolder.tvBy.setText(String.valueOf(simpleInterest));

    viewHolder.tvListItemExpense.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            ActionItem editItem_for_def_user = new ActionItem(ID_EDIT,
                    "Want to Pay?", context.getResources().getDrawable(
                            R.drawable.fbem_ptp32_popup));
            final QuickAction mQuickAction_for_def_user = new QuickAction(
                    context);

            mQuickAction_for_def_user.addActionItem(editItem_for_def_user);

            mQuickAction_for_def_user
                    .setOnActionItemClickListener(new QuickAction.OnActionItemClickListener() {
                        @SuppressLint("ResourceAsColor")
                        @Override
                        public void onItemClick(QuickAction quickAction,
                                int pos, int actionId) {
                            ActionItem actionItem = quickAction
                                    .getActionItem(pos);

                            if (actionItem != null) {

                                if (viewHolder.tvListItemExpense.isSelected()) {

                                    viewHolder.tvDate.setTextColor(context
                                            .getResources().getColor(
                                                    R.color.light_green));
                                }
                            }
                        }
                    });
            mQuickAction_for_def_user
                    .setOnDismissListener(new QuickAction.OnDismissListener() {
                        @Override
                        public void onDismiss() {

                        }
                    });
            mQuickAction_for_def_user.show(v);
        }
    });
    total = amount + simpleInterest;

    // viewHolder.tvAmt.setText(String.valueOf(total));
    baseAdapter.close();
    return convertView;
}

我想这样做

【问题讨论】:

  • No..我试过这个但没有改变 textview 的颜色
  • @KrishnaJ 可以发一下listview的Adapter类文件吗
  • 我编辑我的问题并输入代码
  • 我解决了我的问题,使用在数据库中创建差异表并在获取和检查状态后获取状态字段我可以更改唯一必填字段的颜色...谢谢大家

标签: android listview baseadapter


【解决方案1】:

尝试在 getView() 的开头添加这个:

final ListView listview = (ListView) parent;

然后在您的操作中,不要更改文本颜色,而是检查所选项目:

listview.setItemChecked(position, true);

在返回convertView之前,相应地改变文本颜色:

if(listview.isItemChecked(position)){
// set text color for checked items.
}else{
// set text color for normal items.
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-04
    • 1970-01-01
    • 1970-01-01
    • 2012-08-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多