功能:实现数据条目显示,就像QQ联系人那样排列。
设备:电脑一台、Android Studio软件一个。
技术:xml布局、ListView控件的使用。
效果图:
在Android 开发中ListView是一个比较常用的控件,它以列表的形式展示具体数据内容,当数据过多时会出现滚动条,并且能够根据数据的长度来适应屏幕显示。
在使用ListView时需要进行数据适配,这样界面才会显示数据。在进行数据适配时会用到数据适配器,所谓的适配器就是数据和视图之间的一个桥梁,可以理解为一个转换器,将杂乱的数据条理清晰的展示给用户。
常用的适配器有:BaseAdapter、SimpleAdapter、ArrayAdapter使用方法都大同小异。
下面我们亲看详细内容:
创建两个xml,一个是ListView一个是item
下面请看代码:
1.activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<ListView
android:id="@+id/lv"
android:layout_width="match_parent"
android:layout_height="match_parent">
</ListView>
</LinearLayout>
2.list_item.xml
<?xml version="1.0" encoding="utf-8"?><ImageView
android:id="@+id/item_image"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_margin="10dp"
android:background="@drawable/qq"/>
<TextView
android:id="@+id/item_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="我是ListView的item布局"
android:textSize="18dp"/>
3.MainActivity.java
public class MainActivity extends AppCompatActivity {
//适配䣌数据
private String names[] = {"京东商城","QQ","QQ斗地主","新浪微博","天猫","UC浏览器","微信"};
//适配䣌图片,与前面的数据对应
private int icons[] = {R.drawable.jd,R.drawable.qq,R.drawable.dz,R.drawable.xl,R.drawable.tm,R.drawable.uc,R.drawable.wx};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化ListView
ListView mListView = (ListView)findViewById(R.id.lv);
//创建一个适配器实例
MyBaseAdapter myBaseAdapter = new MyBaseAdapter();
//设置适配器
mListView.setAdapter(myBaseAdapter);
}
//定义适配器类
class MyBaseAdapter extends BaseAdapter{
//获得item的总数
@Override
public int getCount() {
//返回ListView item的条目总数
return names.length;
}
//获得item代表的对象
@Override
public Object getItem(int position) {
//返回ListView item条目代表的对象
return names[position];
}
//得到item的id
@Override
public long getItemId(int position) {
//返回ListView item的id
return position;
}
//得到item的View视图
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//将list_item文件找到并转为view对象
View view = View.inflate(MainActivity.this,R.layout.list_item,null);
//放文字的地方
TextView mTextView = (TextView)view.findViewById(R.id.item_tv);
mTextView.setText(names[position]);
//放图片的地方
ImageView mimageView = (ImageView)view.findViewById(R.id.item_image);
mimageView.setBackgroundResource(icons[position]);
return view;
}
}
}
就这么简单!欢迎一起交流,评论或关注给我最大的支持。