实验目的
1.了解Android编程基础。
2.掌握Button事件处理。
3.了解Intent和Bundle的机制并且使用Intent和Bundle实现页面跳转。
4.了解一个Activity的生命周期。
实验题目
用listview来实现下面的小组成员列表,男生女生头像不同,点击男生头像,则列表全部变为男生信息,女生也相同。且点击item,项目跳转到文字信息,显示其对应信息。
实验要求
1.通过Intent实现Activity之间的跳转;
2.通过Bundle在Activity之间传递参数;
3.使用Adapter适配器来进行基本的ListView设计;
4.完成【课堂练习】;
5.完成【课后作业】并提交实验报告。
实验分析
刚开始学习android,写代码速度比较慢。
写布局的时候还比较熟练,没有参考太多题目给的布局,自己手写的,文字大小有参考一部分。
这次实验遇到的主要问题
1. listItem和imageButton共存的时候需要用到descendantFocusability这个属性,具体已在csdn总结。
2. 界面跳转那部分,忘记给新的activity注册,导致运行很多次都出错,最后看了logcat才知道问题,比较傻的一个错误。
3. 然后就是对每个item的imageButton监听,方法应该是对每个view的btn进行监听设置,如果一开始就来 ImageButton imagebtn = (~)findViewById(R.id.icon).因为每个item的id都一样,会导致运行出错。应该重写getview方法,对每个view设置监听,方法如下:
//重写adapter的getView
//关键代码
SimpleAdapter itemAdapter = new SimpleAdapter(this,
mDataList,
R.layout.list_item,
new String[]{"name","class","sexs"},
new int[]{R.id.item_name,R.id.item_class,R.id.icon}){
///**重写适配器的getview,以获得position设置imagebutton的监听
@Override
public View getView(int position,View convertView,ViewGroup parent){
View view = super.getView(position, convertView, parent);
final int pos = position;
//下面这行找到特定item的imagebtn 的 id,只能这么写
view.findViewById(R.id.icon).setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
int src = Integer.parseInt(mDataList.get(pos).get("sexs").toString());
mDataList.clear();
if(src == f){
mDataList.addAll(fList);
}else{
mDataList.addAll(mList);
}
notifyDataSetChanged();//这个是simpleAdapter的方法
}
});
return view;
}
};
实验结果
实验心得
开始学习android,简单的代码都需要重复去敲。其实遇到的小问题还是有很多的,但是需要培养自己独立去思考问题,不要一不懂就问,多去上网找答案。实在不会再问人。
对于simpleAdapter的适配器使用,自己要多去写,提体会其中的使用。