Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 以编程方式设置按下状态下列表项的背景色_Android_Listview - Fatal编程技术网

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

Android 以编程方式设置按下状态下列表项的背景色,android,listview,Android,Listview,嗨,我正试图改变一个列表项的背景颜色,当它被按下时,我需要以编程的方式这样做,因为它需要设置的颜色是从我的活动中的字符串解析出来的。有人知道怎么做吗 我尝试过设置视图的背景,但这只是改变了背景颜色,而不仅仅是当它被选中时 public void onItemSelected(View v, int position, JSONObject itemDict, String bgColor) { // TODO Auto-generated method stub

嗨,我正试图改变一个列表项的背景颜色,当它被按下时,我需要以编程的方式这样做,因为它需要设置的颜色是从我的活动中的字符串解析出来的。有人知道怎么做吗

我尝试过设置视图的背景,但这只是改变了背景颜色,而不仅仅是当它被选中时

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); 

    }

您是否尝试过将
设置为TouchListener

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;
});

假设您已经定义了
pressColor
normalColor

您是否尝试过在TouchListener上设置

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;
});
假设您已经定义了
按color
normalColor