Android开发之BaseApdater
来源:互联网 发布:数据挖掘 韩家炜 ppt 编辑:程序博客网 时间:2024/06/05 10:37
概要
SimpleAdapter和BaseAdapter都可以用于实现相同功能,但是相比较而言我比较喜欢BaseAdapter,都是java代码操作,没那么多xml文件要写。
概要步骤:
这里没什么步骤,无非是在布局里添加一个ListView之类的,我把BaseApdater的构造函数解释一下就完事了。
BaseAdapter ba = new BaseAdapter(){
@Override
public int getCount() {
return 4;//ListView中有几条数据要显示
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroupparent) {
//这里定义了每一项显示的内容是什么
}
};
完整代码
public class ListViewActivity extends Activity {
private OnItemSelectedListeneritemSelectedListener;
private OnItemClickListeneritemClickListener;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listview);
initListView();
}
public void initListView(){
final int[] images = {R.drawable.bluebutton,R.drawable.greenbutton,R.drawable.imagebutton,R.drawable.imagebuttondown};
final int[] strings = {R.string.image1,R.string.image2,R.string.image3,R.string.image4};
ListView lv = (ListView) this.findViewById(R.id.listview);
itemSelectedListener = new OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2,long arg3) {
LinearLayout ll = (LinearLayout) arg1;
TextView tv = (TextView) ll.getChildAt(1);
Toast.makeText(ListViewActivity.this, tv.getText(),1000).show();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
};
itemClickListener = new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
LinearLayout ll = (LinearLayout) arg1;
TextView tv = (TextView) ll.getChildAt(1);
Toast.makeText(ListViewActivity.this, tv.getText(),1000).show();
}
};
BaseAdapter ba = new BaseAdapter(){
@Override
public int getCount() {
return 4;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroupparent) {
LinearLayout ll = new LinearLayout(ListViewActivity.this);
ll.setOrientation(LinearLayout.HORIZONTAL);
ll.setPadding(5, 5, 5, 5);
ImageView iv = new ImageView(ListViewActivity.this);
iv.setImageDrawable(getResources().getDrawable(images[position]));
iv.setScaleType(ImageView.ScaleType.FIT_XY);
iv.setLayoutParams(new Gallery.LayoutParams(100, 98));
ll.addView(iv);
TextView tv = new TextView(ListViewActivity.this);
tv.setText(getResources().getText(strings[position]));
tv.setTextSize(24);
tv.setPadding(5, 5, 5, 5);
tv.setGravity(Gravity.LEFT);
ll.addView(tv);
return ll;
}
};
lv.setAdapter(ba);
lv.setOnItemSelectedListener(itemSelectedListener);
lv.setOnItemClickListener(itemClickListener);
}
}
运行效果图
- Android开发之BaseApdater
- Android开发之蓝牙开发
- Android 开发之 手势开发
- Android开发之Hybrid开发
- Android开发之开发入门教程
- android 开发之蓝牙开发
- Android开发之Hybrid开发
- android开发之TabActivity
- android 开发之布局
- android之NDK开发
- Android开发之计算器
- Android开发之PreferenceActivity
- Android开发之ListView
- Android开发之PopupWindow
- Android开发之Linkify
- Android开发之SurfaceView
- Android开发之PreferenceActivity .
- Android开发之AutoCompleteTextView
- 排列算法分析及实现(C/OC)
- 写给开发者看的关系型数据库设计
- android实现底部按钮布局
- hibernate注解用法
- Partition List
- Android开发之BaseApdater
- JEECG开源项目介绍及视频教程
- Android学习系列(5)--App布局初探之简单模型
- 把MongoDB当成纯内存数据库使用
- 修改ARM linux的系统时钟和硬件时钟
- Qt Quick起步
- 【7】coco2d-x核心类之CCAction
- Jedis使用
- 修改mysql数据库名