单击新视图时如何删除 setBackgroundResource?

How can I remove setBackgroundResource when new View is clicked?

我有一个带文本视图的水平列表视图。当我单击视图中的文本视图时,该特定文本视图会获得一个边框。

public View getView(int position, View convertView, ViewGroup parent) {
        View retval = LayoutInflater.from(parent.getContext()).inflate(R.layout.minute_listview, null);
        Typeface afBold = Typeface.createFromAsset(getAssets(), "fonts/AftenScreen-Bold.ttf");
        minuteText = (TextView) retval.findViewById(R.id.title);
        Button button = (Button) retval.findViewById(R.id.clickbutton);
        button.setOnClickListener(mOnButtonClicked);
        minuteText.setText(dataObjects[position]);
        minuteText.setTypeface(afBold);

//THIS IS WHERE THE BORDER GETS SET
        minuteText.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                v.setBackgroundResource(R.drawable.border);
            }
        });

        return retval;
    }

现在,如何删除此边框并将其设置在下一个单击的文本视图上?

使用它会给你一个白色背景或半透明背景,换句话说它已被删除

WhatEverView.setBackground(new ColorDrawable(Color.TRANSPARENT));

好的完整代码

int pos -1;// default is -1, which means no one has altered it
// replicate this onclick listener logic
minuteText.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(pos != -1){ // it is not -1 that means some1 has altered it                 
                parentView.findViewById(pos).
                      setBackground(new ColorDrawable(Color.TRANSPARENT));
            // the above line searched for the view and changed the background
            }
            pos = v.getId(); // the id of the new view, keep doing it
            v.setBackgroundResource(R.drawable.border);
        }
    });

因此,请将此用于您希望影响的所有 onclick 侦听器

符合您的要求吗?

添加这个

TextView ClicledTv ;//to save the clicked tv id

然后

 minuteText.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               if(Clickedtv!=null)
                clickedtv.setBackground(R.drawable.anotherOne);
                v.setBackgroundResource(R.drawable.border);
                clickedTv=minuteText;
            }
        });