以编程方式设置列表项的背景颜色按下状态

时间:2014-01-11 20:46:25

标签: android listview

您好我正在尝试更改列表项的背景颜色,我需要以编程方式执行此操作,因为需要设置的颜色是从我的活动中的字符串中解析出来的。有谁知道怎么做?

我尝试过设置视图的背景,但这只会改变背景颜色,而不仅仅是在选择背景颜色时。

public void onItemSelected(View v, int position, JSONObject itemDict, String bgColor) {
        // TODO Auto-generated method stub

        if(  v.isActivated() == true){
            v.setBackgroundColor(Color.parseColor(bgColor));
            TextView title = (TextView) v.findViewById(R.id.name);
            TextView docType = (TextView) v.findViewById(R.id.doctype);


            if(title != null){
            title.setTextColor(Color.parseColor(bgColor));
            }

            if(docType != null){
            docType.setTextColor(Color.parseColor("#FFFFFF"));
            }

        }

        Intent sectionMain = new Intent(this, SectionDetail.class);
        sectionMain.putExtra("color", bgColor);
        sectionMain.putExtra("fullDict", itemDict.toString());

        startActivity(sectionMain); 

    }

1 个答案:

答案 0 :(得分:4)

您是否尝试过设置OnTouchListener

view.setOnTouchListener(new OnTouchListener() {

    public boolean onTouch(View v, MotionEvent event) {
        if (event.getAction() == MotionEvent.ACTION_DOWN) {
            v.setBackgroundColor(pressColor);
        } else if (event.getAction() == MotionEvent.ACTION_UP) {
            v.setBackgroundColor(normalColor);
        }
    }
    return false;
});

假设您已定义pressColornormalColor