Android中的ListView实现图片文字和按钮
16lz
2021-01-23
实现效果图:
布局文件:
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 在SDCard获取图片
- android 从系统相册获取一张图片
- android WebView加载URL不显示图片
- android 使用randerScript实现图片模糊效果
- android 给图片加水印
- Android: 利用Bimap,canvas处理图片(画直线)
- 【Android】ImageMap,图片地图
- Android Stdio实现点击按钮出现图片