GridView单选效果 点击选中一项时,再点击选中另一项时改变背景,原来选中的项取消换回原来的背景

来源:互联网 发布:上海证券手机炒股软件 编辑:程序博客网 时间:2024/05/21 18:39
/**  *xml Item部分  */    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"      xmlns:tools="http://schemas.android.com/tools"      android:layout_width="wrap_content"      android:layout_height="wrap_content"      tools:context=".MainActivity" >        <ImageView           android:id="@+id/imageview"          android:padding="10dip"          android:layout_width="wrap_content"          android:layout_height="wrap_content"          android:gravity="center"          android:src="@drawable/icon_checkbox_normal"          android:clickable="true"/>       </RelativeLayout>

/***xml部分  */  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"      xmlns:tools="http://schemas.android.com/tools"      android:layout_width="match_parent"      android:layout_height="match_parent"      android:gravity="center_horizontal"      tools:context=".MainActivity" >        <GridView android:id="@+id/gridview_radio"              android:layout_width="match_parent"              android:layout_height="wrap_content"              android:numColumns="4"              android:padding="10dp"              android:horizontalSpacing="4dp"              android:verticalSpacing="4dp"              android:gravity="center"/>        </RelativeLayout> 


/***java部分*/public class MainActivity extends Activity {private int icon[] = { R.drawable.icon_checkbox_normal,R.drawable.icon_checkbox_normal, R.drawable.icon_checkbox_normal,R.drawable.icon_checkbox_normal, R.drawable.icon_checkbox_normal,R.drawable.icon_checkbox_normal, R.drawable.icon_checkbox_normal,R.drawable.icon_checkbox_normal };MyAdapter myAdapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 定义Adapter,不用每次newmyAdapter = new MyAdapter();GridView gridview_radio = (GridView) findViewById(R.id.gridview_radio);gridview_radio.setAdapter(myAdapter);gridview_radio.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {// TODO Auto-generated method stubmyAdapter.setSeclection(position);myAdapter.notifyDataSetChanged();}});}class MyAdapter extends BaseAdapter {private int clickTemp = -1;// 标识选择的Itempublic void setSeclection(int position) {clickTemp = position;}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn icon.length;}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn icon[position];}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// Holder 是设计个静态类,缓存一下,避免Listview更新的时候,重新操作。Holder holder = null;if (convertView == null) {holder = new Holder();convertView = View.inflate(MainActivity.this,R.layout.activity_main_item, null);holder.imageView = (ImageView) convertView.findViewById(R.id.imageview);convertView.setTag(holder);} else {holder = (Holder) convertView.getTag();}if (clickTemp == position) {holder.imageView.setImageResource(R.drawable.icon_checkbox_checked);} else {holder.imageView.setImageResource(R.drawable.icon_checkbox_normal);}return convertView;}}static class Holder {ImageView imageView;}}


0 0
原创粉丝点击