本文已参与「新人创作礼」活动,一起开启掘金创作之路。
list.xml布局构思
- 总体是垂直的线性布局,并且需要加上android:descendantFocusability="blocksDescendants"来夺取焦点
- 主要为了实现点击list内的每一项以及点击按钮都有不同的反应
- 里面放一个textview做标题,一个listview即可
bg.xml
- 作为Listview每一项的格式,总体是水平(横向)的线性布局
- 博主往这里面放了1个imageview,1个垂直线性布局里面2个textview,1个按钮
设计效果图
Myadapter.java
- 首先自定义适配器MyAdapter,并且继承SimpleAdapter
- 定义上下文对象context
public class MyAdapter extends SimpleAdapter {
Context context;
public MyAdapter(Context context, List<?extends Map<String,?>> data, int resource, String[] from,
int[] to) {
super(context,data,resource,from,to);
this.context = context;
}
@Override
public View getView(final int i, View convertView, ViewGroup viewGroup) {
View view = super.getView(i, convertView, viewGroup);
final Button btn = (Button) view.findViewById(R.id.baomingbtn);
btn.setTag(i);//设置标签
btn.setOnClickListener(new View.OnClickListener() {
Intent intent = new Intent();
@Override
public void onClick(View v) {
switch ((Integer) v.getTag()) {
case 0:
intent.setClass(context,info.class);
context.startActivity(intent);
break;
case 1:
intent.setClass(context,info.class);
context.startActivity(intent);
break;
case 2:
intent.setClass(context,info.class);
context.startActivity(intent);
break;
case 3:
intent.setClass(context,info.class);
context.startActivity(intent);
break;
case 4:
intent.setClass(context,info.class);
context.startActivity(intent);
break;
case 5:
intent.setClass(context,info.class);
context.startActivity(intent);
break;
case 6:
intent.setClass(context,info.class);
context.startActivity(intent);
break;
}
}
});
return view;
}
}
list.java
- 定义整型数组存放图片
public class list extends AppCompatActivity {
private ListView listview;
String[] items = new String[]{"英语四级","英语六级","成人高考","在职研究生考试","在职博士生","在职博士后"};
String[] tishiyu = new String[]{"已报名552509人","已报名367908人","已报名65246人","已报名98674人","已报名12312人","已报名7873人"};
int images[] = new int[]{R.drawable.cet4,R.drawable.cet6,R.drawable.chengrengaokao,R.drawable.yanjiusheng,R.drawable.boshi,R.drawable.boshihou};
private ArrayList<Map<String, Object>> list;
private MyAdapter adapter;
private ImageView imageview;
private String photos = String.valueOf(images);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list);
exit.getInstance().addActivity(this);
}
//0.抽取列表视图
listview = (ListView) findViewById(R.id.listView);
imageview = (ImageView) findViewById(R.id.imageView);
////1.实现list中具体的数据
list = new ArrayList<>();
for (int i=0;i<items.length;i++){
Map<String,Object> map = new HashMap<>();
map.put("001图片",images[i]);
map.put("002文字",items[i]);
map.put("003提示语",tishiyu[i]);
list.add(map);
}
////////////2.设计布局文件
adapter = new MyAdapter(this, list, R.layout.bg, new String[]{"001图片", "002文字","003提示语"}
, new int[]{imageView, R.id.textView,R.id.textView2});
//////////3.设置adapter适配器
listview.setAdapter(adapter);
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int i, long l) {
Toast.makeText(getApplicationContext(),items[i],Toast.LENGTH_SHORT).show();
}
});
}
}