您的位置:首页 > 其它

自定义ListView适配器Adapter引用布局文件的情况下实现点击列表项时背景颜色为灰色

2015-10-07 17:11 645 查看
listview控件设置适配器的时候,如果使用自定义的adapter,比如MyArrayAdapter extends ArrayAdapter<String>

如果listitem布局文件不做任何处理的话,点击列表项的时候不会出现背景色灰色的现象。

实现思路是:在listitem布局文件中为该布局文件中的父控件:LinearLayout,设置android:background="@drawable/listitemclickseletor"

其中listitemclickseletor是res/drawable目录下的一个根节点为selector的xml文件。

listitem布局文件如下:

package com.why.autosearch.adapter;

import java.util.List;

import com.why.autosearch.activity.R;

import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnLongClickListener;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import android.widget.TextView;

public class MyArrayAdapter extends ArrayAdapter<String>{

private int listitemResourceid;//列表项的布局文件ID
private Context mcontext;

public MyArrayAdapter(Context context, int resource, List<String> objects) {
super(context, resource, objects);
listitemResourceid = resource;
mcontext = context;
}

/**
* 重写getView*/
public View getView(int position, View convertView, ViewGroup parent) {

String listItemStr = getItem(position);

View view = null;
ViewHolder holder = null;

if(convertView == null){
view = LayoutInflater.from(mcontext).inflate(listitemResourceid, parent, false);
holder = new ViewHolder();
holder.listitemText = (TextView) view.findViewById(R.id.listitemText);
view.setTag(holder);
}else{
view = convertView;
holder = (ViewHolder) view.getTag();
}

//列表项的标题
holder.listitemText.setText(listItemStr);

return view;
}

class ViewHolder{
TextView listitemText;
}

}


MyArrayAdapter
4、Listitem布局文件见文章开头。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: