实现listview单选效果
来源:互联网 发布:淘宝交电费显示缴费中 编辑:程序博客网 时间:2024/05/20 04:28
单选listview效果,默认点击第一个item,当已经选中的item再次点击的时候让item变成不选中的情况,当点击其他的item的时候选中其他的item。(图片背景果然是太粉嫩了。)
(1)listview的代码(不解释了,大家改吧改吧希望能用到你们的项目当中。)
import java.util.ArrayList;import com.example.singchooselistviewdemo.Model.Data;import com.example.singchooselistviewdemo.adapter.MyAdapter;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.ListView;public class MainActivity extends Activity { private ListView listview; private ArrayList<Data> dataList; private MyAdapter mAdapter; private int beforePostion; private boolean isChecked; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listview = (ListView) findViewById(R.id.listview); initData(); getSingData(); } private void initData() { dataList = new ArrayList<Data>(); for (int i = 0; i < 10; i++) { Data data = new Data(); data.setId(i + ""); data.setName("data" + i); dataList.add(data); } mAdapter = new MyAdapter(MainActivity.this, dataList); listview.setAdapter(mAdapter); } private int afterposition; private void getSingData() { beforePostion = 0; mAdapter.setSelectItem(beforePostion); listview.setChoiceMode(ListView.CHOICE_MODE_SINGLE); listview.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) { afterposition = position; if (afterposition == beforePostion) { if (!isChecked) { beforePostion = afterposition; mAdapter.setSelectItem(-1); isChecked = true; } else { beforePostion = position; mAdapter.setSelectItem(position); isChecked = false; } } else { isChecked = false; beforePostion = position; mAdapter.setSelectItem(position); } mAdapter.notifyDataSetInvalidated(); } }); }}
(2)adapter
import java.util.ArrayList;import com.example.singchooselistviewdemo.R;import com.example.singchooselistviewdemo.Model.Data;import android.content.Context;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;public class MyAdapter extends BaseAdapter { private Context context; private ArrayList<Data> dataList; public MyAdapter(Context context, ArrayList<Data> dataList) { this.context = context; this.dataList = dataList; } @Override public int getCount() { return dataList.size(); } @Override public Data getItem(int position) { return dataList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = View.inflate(context, R.layout.item, null); } Data data = dataList.get(position); ViewHolder holder = ViewHolder.getHolder(convertView); holder.tvText.setText(data.getName()); if (position == pos) { holder.ivIcon.setVisibility(View.VISIBLE); } else { holder.ivIcon.setVisibility(View.GONE); } return convertView; } static class ViewHolder { public ImageView ivIcon; public TextView tvText; public ViewHolder(View convertView) { ivIcon = (ImageView) convertView.findViewById(R.id.iv_icon); tvText = (TextView) convertView.findViewById(R.id.tv_text); } public static ViewHolder getHolder(View convertView) { ViewHolder viewHolder = (ViewHolder) convertView.getTag(); if (viewHolder == null) { viewHolder = new ViewHolder(convertView); convertView.setTag(viewHolder); } return viewHolder; } } private int pos = -1; public void setSelectItem(int i) { pos = i; } public int getSelectItem() { return pos; }}
这样就可以实现了listview单选效果了。有问题可以沟通(qq:1250882930)
这里写链接内容
0 0
- 实现listview单选效果
- CheckedTextView实现ListView的单选效果
- ListView和GridView实现单选效果
- Android ListView 实现Item单选效果
- 用CheckBox实现ListView单选效果
- ListView和GridView实现单选效果
- listview或者gridview 实现单选效果
- ListView+CheckBox实现单选效果
- GridView或者Listview实现单选效果
- ListView 单选效果
- ListView + CheckBox实现单选、多选效果
- ListView利用CheckedTextViewr实现条目单选效果
- 实现单选的字体变色效果的listview
- ListView实现颜色变化的单选效果
- listview和imageview实现条目单选效果
- ListView单选效果(最简单的实现方式)
- listview和imageview实现条目单选效果
- listview实现单选
- 常用的正则表达式使用方法
- Oracle查询数据表数据很少却很慢(查询空表很很耗时)
- Java中输出当前时间的各种方法(较齐全)
- maven
- WSAAsyncSelect模型实例讲解
- 实现listview单选效果
- HDU 1084 What Is Your Grade? (模拟题)
- 一个TextView实现不同部分添加不同样式
- Tomcat7配jdk1.6的代码优化问题
- AndroidSutdio与Git@osc
- swift附属脚本
- php5-memcached比php5-memcache速度略快一点
- RegExp对象(javascript)
- python + selenium