Android中的ListView实现图片文字和按钮
16lz
2022-01-27
实现效果图:
布局文件:
vlist2.xml
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | <? xml version = "1.0" encoding = "utf-8" ?> < LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
android:orientation = "horizontal"
android:layout_width = "fill_parent"
android:layout_height = "fill_parent" >
< ImageView android:id = "@+id/img"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_margin = "5px" />
< LinearLayout android:orientation = "vertical"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content" >
< TextView android:id = "@+id/title"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:textColor = "#FFFFFFFF"
android:textSize = "22px" />
< TextView android:id = "@+id/info"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:textColor = "#FFFFFFFF"
android:textSize = "13px" />
</ LinearLayout >
< Button android:id = "@+id/view_btn"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:text = "@string/s_view_btn"
android:layout_gravity = "bottom|right" /> </ LinearLayout > |
程序代码:
?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 | /**
* @author allin
*
*/ public class MyListView4 extends ListActivity {
private List<Map<String, Object>> mData;
@Override
public void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
mData = getData();
MyAdapter adapter = new MyAdapter( this );
setListAdapter(adapter);
}
private List<Map<String, Object>> getData() {
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> map = new HashMap<String, Object>();
map.put( "title" , "G1" );
map.put( "info" , "google 1" );
map.put( "img" , R.drawable.i1);
list.add(map);
map = new HashMap<String, Object>();
map.put( "title" , "G2" );
map.put( "info" , "google 2" );
map.put( "img" , R.drawable.i2);
list.add(map);
map = new HashMap<String, Object>();
map.put( "title" , "G3" );
map.put( "info" , "google 3" );
map.put( "img" , R.drawable.i3);
list.add(map);
return list;
}
// ListView 中某项被选中后的逻辑
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
Log.v( "MyListView4-click" , (String)mData.get(position).get( "title" ));
}
/**
* listview中点击按键弹出对话框
*/
public void showInfo(){
new AlertDialog.Builder( this )
.setTitle( "我的listview" )
.setMessage( "介绍..." )
.setPositiveButton( "确定" , new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.show();
}
public final class ViewHolder{
public ImageView img;
public TextView title;
public TextView info;
public Button viewBtn;
}
public class MyAdapter extends BaseAdapter{
private LayoutInflater mInflater;
public MyAdapter(Context context){
this .mInflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return mData.size();
}
@Override
public Object getItem( int arg0) {
// TODO Auto-generated method stub
return null ;
}
@Override
public long getItemId( int arg0) {
// TODO Auto-generated method stub
return 0 ;
}
@Override
public View getView( int position, View convertView, ViewGroup parent) {
ViewHolder holder = null ;
if (convertView == null ) {
holder= new ViewHolder();
convertView = mInflater.inflate(R.layout.vlist2, null );
holder.img = (ImageView)convertView.findViewById(R.id.img);
holder.title = (TextView)convertView.findViewById(R.id.title);
holder.info = (TextView)convertView.findViewById(R.id.info);
holder.viewBtn = (Button)convertView.findViewById(R.id.view_btn);
convertView.setTag(holder);
} else {
holder = (ViewHolder)convertView.getTag();
}
holder.img.setBackgroundResource((Integer)mData.get(position).get( "img" ));
holder.title.setText((String)mData.get(position).get( "title" ));
holder.info.setText((String)mData.get(position).get( "info" ));
holder.viewBtn.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
showInfo();
}
});
return convertView;
}
} } |
更多相关文章
- android 3D gallery 并 判断当前选中项
- Android仿iPhone的日期时间选择器
- android 3D gallery 并 判断当前选中项
- android之AnologClock 和 DigitalClock
- Android简单的计算控件使用
- Android之Spinner用法
- android开关按钮,Switch,ToggleButton,RadioButton,CheckBox ,多种实
- android 自定义对话框宽不能占满父layout的解决办法
- Android自定义Dialog以控制其位置和宽高