ListView、GridView的使用

应用场景:

对同一类别的数据进行列表显示,或者移动端系统中某些功能按钮的需要进行网格分布(这点侧重于GridView的使用)。

使用方式:

【ListView】  以MainActivity为例说明

第一步:在activity_main.xml,添加如下代码;

<ListView 
       android:id="@+id/listview"
       android:layout_width="match_parent"
       android:layout_height="wrap_content">
</ListView>

第二步:在src新建一个类ListViewAdapter.java继承android.widget.BaseAdapter,并实现或复写对应的方法,示例如下。本例可为其他系统所复用。

public class ListViewAdapter extends BaseAdapter{
	private List<Map<String, String>> lists;
	private LayoutInflater mInflater;
	private Context mainContext;
	
	public ListViewAdapter(Context context, List<Map<String, String>> list) {
		mInflater = LayoutInflater.from(context);
		mainContext = context;
		lists = list;
	}
	
	@Override
	public int getCount() {
		return lists.size();
	}

	@Override
	public Object getItem(int position) {
		return lists.get(position);
	}

	@Override
	public long getItemId(int position) {
		return position;
	}

	@Override
	public View getView(final int position, View convertView, ViewGroup parent) {
		ViewHolder holder=null;
		if (convertView == null) {
			holder = new ViewHolder();
			convertView = mInflater.inflate(R.layout.view_news, null);
			holder.title = (TextView) convertView.findViewById(R.id.view_news_item_title);
			convertView.setTag(holder);
		}else {
			holder = (ViewHolder) convertView.getTag();
		}
		if(position%2==1){  //实现背景颜色的交替
			convertView.setBackgroundColor(Color.rgb(220, 220, 220));
		}else {
			convertView.setBackgroundColor(Color.rgb(255, 250, 250));
		}
		final Map<String, String> map = lists.get(position);
		String title = (String) map.get("title");
		holder.title.setText(title);
		holder.title.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				String toastTitle = (String)(lists.get(position).get("title"));
				Toast.makeText(mainContext, toastTitle, Toast.LENGTH_SHORT).show();
			}
		});
		return convertView;
	}
	static class ViewHolder {  //ViewHolder   ListView中 ItemView的对象
		TextView title;  //ListView中 ItemView中的控件的对象
	}
}

第三步:在MainActivity.java的代码如下。

public class NewsActivity extends Activity {
	private ListView newsListView;
	private ListViewAdapter mainListViewAdapter;
	private List<Map<String, String>> list = new ArrayList<Map<String, String>>();

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_news);
		initViews();
	}

	private void initViews() {
		//初始化ListView对象
		newsListView = (ListView) findViewById(R.id.listview);
		assembleData();
		mainListViewAdapter = new MainListViewAdapter(NewsActivity.this, list);
		//ListView  添加适配器类 ListViewAdapter
newsListView.setAdapter(mainListViewAdapter);
	}

	private void assembleData() {
		String[] tempDatas = {"热烈祝贺我公司参与建设的河南省环境自动监控系统顺利通过竣工验收","上网电厂工况监控平台项目详细设计通过省环保厅评审", "祝贺公司成功“登顶”西藏环保项目","雪城软件助力河南省环保总量预算管理全国领先" };
		for (int i = 0; i < tempDatas.length; i++) {
			Map tempMap = new HashMap();
			tempMap.put("title", "●"+tempDatas[i]);
			list.add(tempMap);
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hoking

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值