收藏 分享(赏)

05-用户基本信息管理.doc

上传人:fmgc7290 文档编号:8130936 上传时间:2019-06-10 格式:DOC 页数:18 大小:899.50KB
下载 相关 举报
05-用户基本信息管理.doc_第1页
第1页 / 共18页
05-用户基本信息管理.doc_第2页
第2页 / 共18页
05-用户基本信息管理.doc_第3页
第3页 / 共18页
05-用户基本信息管理.doc_第4页
第4页 / 共18页
05-用户基本信息管理.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、1青 岛 理 工 大 学课程实验报告课程名称 嵌入式软件设计与开发 班级 软件 121 实验日期 2015.05.21姓名 陈鑫月 学号 201207171 实验成绩实验名称 用户基本信息管理实验目的及要求熟悉 Android 常用控件的综合使用方法 :实现模拟用户信息管理功能实验环境 Win7, Eclipse实验内容屏幕分为上下 2 部分:上面输入用户基本信息,下面列表列出输入的所有用户信息,每行显示一个用户的基本信息。(1) 上面输入用户信息,点击“增加”则将用户信息加入下面的列表中;(2) 点击列表中的一行,则选中该行,同时在上面显示该行对应的数据;(3) 先点击列表选中一行,然后点击

2、“删除” ,则删除该行信息,同时选中下一行;(4) 先点击列表选中一行,然后修改上面的信息,再点击“修改” ,则将修改后的信息更新到列表中;(5) 在上面的控件中输入要查询的姓名,然后点击“查询” ,则在下面的列表中选中对应的行。参考界面如下图:2算法描述及实验步骤1.编写一个 textview 的布局文件和一个其他控件的布局文件2.在.Java 文件中调用布局文件并定义所用的控件,编写实现所需功能的代码。调试过程及实验结果界面:增加:3删除 john:修改 alice:查找 alice:4总结 本次实验通过制作一个用户信息管理来锻炼我们对于各种控件的综合使用。所有的数据和资源要显示到 Lis

3、tView 上都须通过适配器来完成。通过本次实验,让我对所学的控件有了进一步的理解与认识,也了解了许多平时不是很清楚地控件使用方法。通过本次实验认识到了自身依然还有许多不足,许多东西都需要去进一步学习与认识。附录MainActivity.javapackage com.example.userinfomanagement;import android.os.Bundle;import android.app.Activity;import android.content.Context;import android.graphics.Color;import android.view.Layo

4、utInflater;import android.view.Menu;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.BaseAdapter;import android.widget.Button;import android.widget.CheckBox;import android.widget.EditText;import android.widget.ListView;import android.widg

5、et.RadioButton;5import android.widget.RadioGroup;import android.widget.TextView;import android.widget.AdapterView.OnItemClickListener;import android.widget.Toast;public class MainActivity extends Activity Button addbtn,deletebtn,modifybtn,searchbtn;EditText username,userage; /以下是获取用户具体信息的控件RadioGrou

6、p usersex;RadioButton male,female;RadioButton maleOrfemale;CheckBox favorite_reading,favorite_walking,favorite_Watchingmovie;private Userlist U_List=new Userlist(); / 存储所有用户信息的类 private UserInfo U_Info; / 存储具体用户的详细信息 private int listviewPosition =-1; /单击每一行 listview 获取改行的行数并保存private ListView listvi

7、ew=null;MyAdapter adapter ;Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);listview=(ListView)findViewById(R.id.listViewShowInfo);addbtn=(Button) findViewById(R.id.add);deletebtn=(Button) findViewById(R.id.delete);m

8、odifybtn=(Button) findViewById(R.id.modify);searchbtn=(Button) findViewById(R.id.search); username=(EditText) findViewById(R.id.nametext);userage=(EditText) findViewById(R.id.agetext);usersex=(RadioGroup) findViewById(R.id.RadioGroup01);male = (RadioButton) findViewById(R.id.male);female = (RadioBut

9、ton) findViewById(R.id.female); favorite_reading=(CheckBox) findViewById(R.id.reading);favorite_walking=(CheckBox) findViewById(R.id.walking);favorite_Watchingmovie=(CheckBox) findViewById(R.id.Watchingmovie);adapter = new MyAdapter(this);listview.setAdapter(adapter); /加载 listview/为 ListView 添加点击行的监

10、听器listview.setOnItemClickListener(myListener); addbtn.setOnClickListener(new View.OnClickListener() /添加Overridepublic void onClick(View v) / TODO Auto-generated method stubU_Info = new UserInfo(); /创建一个具体的用户类,用户存储当前输入的用户的信息 6U_Info.setName(username.getText().toString(); /获取用户名int radioButtonId =user

11、sex.getCheckedRadioButtonId(); /获取选中的 RadioButton 的实例的 IDmaleOrfemale = (RadioButton)MainActivity.this.findViewById(radioButtonId);U_Info.setSex(maleOrfemale.getText().toString(); /获取用户的性别 U_Info.setAge(userage.getText().toString(); /获取用户的性别 String favorites=“;if(favorite_reading.isChecked() favorit

12、es+=favorite_reading.getText().toString();if(favorite_walking.isChecked() favorites+=favorite_walking.getText().toString();if(favorite_Watchingmovie.isChecked() favorites+=favorite_Watchingmovie.getText().toString();U_Info.setFavorite(favorites); /获取用户的爱好U_List.adduserInfo(U_Info);listview.setAdapte

13、r(adapter); /加载 listview); deletebtn.setOnClickListener(new View.OnClickListener() /删除Overridepublic void onClick(View v) / TODO Auto-generated method stubif(U_List.getUserlist().size()-1!=0else if(listviewPosition=U_List.getUserlist().size()-1) U_List.getUserlist().remove(listviewPosition) ;listvie

14、wPosition-;else Toast.makeText(MainActivity.this, “您未选中任何项!“, Toast.LENGTH_SHORT).show();listview.setAdapter(adapter); /加载 listview7); modifybtn.setOnClickListener(new View.OnClickListener() /修改Overridepublic void onClick(View v) / TODO Auto-generated method stubif(listviewPosition!=0) U_Info = new

15、UserInfo(); /创建一个具体的用户类,用户存储当前输入的用户的信息 U_Info.setName(username.getText().toString(); /获取用户名int radioButtonId =usersex.getCheckedRadioButtonId(); /获取选中的 RadioButton 的实例的 IDmaleOrfemale = (RadioButton)MainActivity.this.findViewById(radioButtonId);U_Info.setSex(maleOrfemale.getText().toString(); /获取用户的

16、性别 U_Info.setAge(userage.getText().toString(); /获取用户的性别 String favorites=“;if(favorite_reading.isChecked() favorites+=favorite_reading.getText().toString();if(favorite_walking.isChecked() favorites+=favorite_walking.getText().toString();if(favorite_Watchingmovie.isChecked() favorites+=favorite_Watch

17、ingmovie.getText().toString();U_Info.setFavorite(favorites); /获取用户的爱好U_List.getUserlist().set(listviewPosition, U_Info);listview.setAdapter(adapter); /加载 listview else Toast.makeText(MainActivity.this, “这标题你也修改!“, Toast.LENGTH_SHORT).show(); );searchbtn.setOnClickListener(new View.OnClickListener()

18、/查询Overridepublic void onClick(View v) / TODO Auto-generated method stublistviewPosition =U_List.searchUser(username.getText().toString()-1;listview.setAdapter(adapter); /加载 listview);8/ListView 中一行对应的对象组合-容器类/使用 ViewHolder 可以减少 findViewById()的使用频率,方便数据访问public final class ViewHolderpublic TextView

19、nameInfo;public TextView sexInfo;public TextView ageInfo;public TextView favoriteInfo; /自定义的 Adapter 类/*Android 系统更新 ListView 时需要调用相关的 Adapter 的方法:* 1)更新前首先调用 getCount()获取需要更新的行数,然后更新过程逐行进行* 2)更新每行时,需要调用 getView()获取当前行对应的 View 对象,* Adapter 需要在 getView()方法中适时创建 View 对象,并对 View对象填充需要显示的内容* */public fi

20、nal class MyAdapter extends BaseAdapter/实例化布局对象-用于实例化每行的布局-View 对象private LayoutInflater mInflater;public MyAdapter(Context context)/ this.mInflater = getLayoutInflater();this.mInflater = LayoutInflater.from(context);/获取 ListView 的总行数Overridepublic int getCount() / TODO Auto-generated method stubret

21、urn U_List.getUserlist().size();Overridepublic Object getItem(int arg0) / TODO Auto-generated method stubreturn null;Overridepublic long getItemId(int position) / TODO Auto-generated method stubreturn 0;/获取指定的一行所对应的 View 对象-不存在的话则创建之/ position-当前要显示的数据的位置(行号)/ convertView-可利用的以前的 View 对象(上下滚动时,利用旧 V

22、iew 对象显示新内容),9/ 如果此项为空,则需要动态创建新的 View 对象/ parent-父控件(上层的 ListView)Overridepublic View getView(int position, View convertView, ViewGroup parent) / TODO Auto-generated method stub/本行对应的容器对象ViewHolder holder = null;/如果该行的 View 为空, 则动态创建新的 View/利用已有的 View 显示新数据,可以减少内存占用,优化响应速度if (convertView = null) /先创

23、建容器对象,以便后来向其中填充当前行中的控件对象holder=new ViewHolder(); /实例化 ListView 的一行, root 参数为空说明此 View 的父控件默认为为上层的 ListViewconvertView = mInflater.inflate(R.layout.itemforinfo, null);/获取内部的各个控件对象, 保存到容器对象中, 以后直接取来用即可-每个子控件对象只用一次 findViewById()holder.nameInfo = (TextView)convertView.findViewById(R.id.nameInfo);holder

24、.sexInfo = (TextView)convertView.findViewById(R.id.sexInfo);holder.ageInfo = (TextView)convertView.findViewById(R.id.ageInfo);holder.favoriteInfo =(TextView) convertView.findViewById(R.id.favoriteInfo);/设置容器对象为 ListView 当前行的 Tag-建立容器类对象与ListView 当前行的联系convertView.setTag(holder);else /如果该行的 View 已经存在

25、,则通过标记获取该行对应的对象holder = (ViewHolder)convertView.getTag(); /设置该行内的控件对象对应的属性,Adapter 的作用(ListListView)- 如果不用 ViewHolder 则需要频发使用 findViewByIDholder.nameInfo.setText(U_List.getUserlist().get(position).getName();holder.sexInfo.setText(U_List.getUserlist().get(position).getSex();10holder.ageInfo.setText(U

26、_List.getUserlist().get(position).getAge();holder.favoriteInfo.setText(U_List.getUserlist().get(position).getFavorite();if (listviewPosition = position / 显示选中信息在框中username.setText(U_List.getUserlist().get(listviewPosition).getName();userage.setText(U_List.getUserlist().get(listviewPosition).getAge()

27、;if(U_List.getUserlist().get(listviewPosition).getSex().equals(“女“) female.setChecked(true); else male.setChecked(true); boolean read=false,walk=false,watchingmovie=false;if(U_List.getUserlist().get(listviewPosition).getFavorite().contains(“读书“)read =true;if(U_List.getUserlist().get(listviewPosition

28、).getFavorite().contains(“散步“) walk =true;if(U_List.getUserlist().get(listviewPosition).getFavorite().contains(“看电影“) watchingmovie =true;favorite_reading.setChecked(read);favorite_walking.setChecked(walk);favorite_Watchingmovie.setChecked(watchingmovie); return convertView;/返回当前行对应的 View 对象/ListVie

29、w 点击行事件的监听函数-不同于之前按钮的监听,整个 ListView 用一个监听器OnItemClickListener myListener=new OnItemClickListener() Overridepublic void onItemClick(AdapterView arg0, View arg1, int arg2,long arg3) / TODO Auto-generated method stub/通过 View 对应的对象获取数据内容-先获取容器对象,再通过它访问其中各个控件的属性ViewHolder holder=(ViewHolder)arg1.getTag()

30、;listviewPosition = arg2;listview.setAdapter(adapter); /加载 listview11;Overridepublic boolean onCreateOptionsMenu(Menu menu) / Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;UserInfo.javapackage com.example.userinfomanagem

31、ent;import java.util.List;public class UserInfo private String name;private String sex;private String age;private String favorite;public String getName() return name;public void setName(String name) if(name.equals(“) this.name=“null“;else this.name = name;public String getSex() return sex;public voi

32、d setSex(String sex) if(sex.equals(“) this.sex=“null“;else this.sex = sex;public String getAge() 12return age;public void setAge(String age) if(age.equals(“) this.age=“null“;else this.age = age;public String getFavorite() return favorite;public void setFavorite(String favorite) if(favorite.equals(“)

33、 this.favorite=“null“;else this.favorite = favorite;Userlist.javapackage com.example.userinfomanagement;import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class Userlist private List userlist;public Userlist() userlist = new ArrayList();UserInfo inituser = new UserInfo

34、();inituser.setName(“姓名“);inituser.setSex(“性别“);inituser.setAge(“年龄“);inituser.setFavorite(“爱好“);userlist.add(inituser);public List getUserlist() return userlist;13public void setUserlist(List userlist) this.userlist = userlist;public void adduserInfo(UserInfo userinfo) /添加用户信息userlist.add(userinfo);public int searchUser(String username) /查询用户信息Iterator iter = userlist.iterator();int position = 0;while(iter.hasNext() UserInfo user = new UserInfo();user = iter.next();position+;if(user.getName().equals(username) break;return position;Activity_main.xml141517Itemforinfo.xml18

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报