Android 點擊ListView(或GridView)的一個item,使其裏面textview變色,點擊另外一個這個恢復原來顏色

今天做一個項目,就是作視頻app,若是電視劇的話有許多劇集,點擊一個item,播放不一樣的劇集,要有點擊效果,而且默認是選擇第一個。花費了一段時間,本身以爲有點難html

度,如今和你們分享一下,下面是效果顯示:app

 

這個類是例子主類:ide

 

<span style="font-size:14px;">public final class MainActivity extends Activity {
    private GridView gridView;
    private ArrayList< String> numberList=new ArrayList<String>();;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // "mMediaItem.mDirector---------------"+VideoDetailActivity_Phone.mediaItem.mDes);
        gridView = (GridView) findViewById(R.id.video_detail_series_gridview);
        
        for (int j = 0; j < 10; j++) {
            
            numberList.add("" + (j+1));
        }
        final SeriesFragmentDataAdapter seriesAdapter = new SeriesFragmentDataAdapter(this,numberList);
        gridView.setAdapter(seriesAdapter);
        
        gridView.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                // TODO Auto-generated method stub
//這句是通知adapter改變選中的position
                    seriesAdapter.clearSelection(position);
//關鍵是這一句,激情了,它能夠讓listview改動過的數據從新加載一遍,以達到你想要的效果
                    seriesAdapter.notifyDataSetChanged();
            }
        });
    }

    }

這個類是例子adapter:

public class SeriesFragmentDataAdapter extends BaseAdapter {

    private LayoutInflater inflater;
    private ArrayList<String> numberList=new ArrayList<String>();
    private int selectedPosition=0;
    public SeriesFragmentDataAdapter(Context context,
            ArrayList<String> numberList) {
        inflater = LayoutInflater.from(context);
        this.numberList = numberList;
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return numberList.size();
    }

    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return numberList.get(position);
    }

    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return position;
    }
//這句是把listview的點擊position,傳遞過來
    public void clearSelection(int position) {
        selectedPosition = position;
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        ViewHolder holder;
        
        if (convertView == null) {
            holder = new ViewHolder();
            convertView = inflater.inflate(R.layout.global_series_item, null);
            holder.textview = (TextView) convertView
                    .findViewById(R.id.video_detail_series_item_text);
            convertView.setTag(holder);
        }
        holder = (ViewHolder) convertView.getTag();
        if (numberList.get(position).length() > 0) {
            holder.textview.setText(numberList.get(position));
        }
        //判斷點擊了哪一個item,而後判斷,讓他的textview變色
        if(selectedPosition==position){
            holder.textview.setTextColor(Color.parseColor("#ff6501"));
                }else{
            holder.textview.setTextColor(Color.parseColor("#404040"));
        }
        return convertView;
    }

     public class ViewHolder {
        public  TextView textview;
    }
}</span>
相關文章
相關標籤/搜索