- package com.nyl.listviewtest;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.AdapterView;
- import android.widget.ListView;
- import android.widget.Toast;
- import java.util.ArrayList;
- import java.util.List;
- public classMainActivityextendsActivityimplements AdapterView.OnItemClickListener {
- privateList skinCare = newArrayList<>();
- private SkinCareAdapter skinCareAdapter;
- private ListView lv;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- initSkinCare(); //初始化所有的护肤品数据skinCareAdapter =newSkinCareAdapter(MainActivity.this,R.layout.skin_care,skinCare);
- //初始化布局控件lv = (ListView) findViewById(R.id.lv);
- lv.setAdapter(skinCareAdapter);
- //设置setOnItemClickListener()方法来为ListView注册一个监听器lv.setOnItemClickListener(this);
- }
- /**
- * 当用户点击了ListView中任何一个子项时,就会回调onItemClick()方法,在这个方法中可以通过i参数判断出用户点击的哪一个
- * 子项,然后获取到相应的护肤品,通过Toast将护肤品的名字显示出来。
- */
- @Override
- public voidonItemClick(AdapterView adapterView, View view,inti,long l) {
- SkinCare sc = skinCare.get(i);
- Toast.makeText(MainActivity.this,sc.getName(),Toast.LENGTH_SHORT).show();
- }
- /**
- * 构造函数中将护肤品的名字,功效和对应的图片id传入,然后把创建好的对象添加到护肤品列表中
- */
- private void initSkinCare() {
- SkinCare cleansingMilk =newSkinCare("洗面奶","基础清洁",R.mipmap.skin_care);
- skinCare.add(cleansingMilk);
- SkinCare toner =newSkinCare("爽肤水","二次清洁,深层补水",R.mipmap.skin_care);
- skinCare.add(toner);
- SkinCare essence =newSkinCare("精华液","集中解决肌肤某个问题,由内而外修复肌肤",R.mipmap.skin_care);
- skinCare.add(essence);
- SkinCare eyeCream =newSkinCare("眼霜","舒缓眼部疲劳,改善眼部肤色",R.mipmap.skin_care);
- skinCare.add(eyeCream);
- SkinCare latex =newSkinCare("乳液","给皮肤补充充足的营养,激活肌肤细胞,形成胶原蛋白",R.mipmap.skin_care);
- skinCare.add(latex );
- SkinCare faceCream =newSkinCare("面霜","不断给肌肤补充充足的水分和养分,使肌肤保持润泽状态",R.mipmap.skin_care);
- skinCare.add(faceCream );
- SkinCare mask =newSkinCare("面膜","清透毛孔,清楚表皮污垢,黑头,死细胞",R.mipmap.skin_care);
- skinCare.add(mask );
- SkinCare sunScreen =newSkinCare("隔离霜","全面隔离紫外线、灰尘、尼古丁、电脑辐射等有害物质对皮肤造成伤害",R.mipmap.skin_care);
- skinCare.add(sunScreen );
- /**
- * 第二种写法
- */
- /*LinkedList<SkinCare> data = new LinkedList<>();
- data.add(new SkinCare("洗面奶","基础清洁",R.mipmap.skin_care));*/
- }
- }
来源: http://www.bubuko.com/infodetail-1976036.html