移动开发技术(Android)——实验5Android⾼级控件的应⽤
移动开发技术——实验5 Android⾼级控件的应⽤
⼀、实验⽬的
1. 掌握在XML布局⽂件中添加下拉列表、列表视图和⽹格视图的语法格式及其常⽤属性;listview控件在哪里
2. 掌握获取下拉列表和列表视图选中项值的⽅法。
3. 理解ListView显⽰的基本原理;
4. 掌握开发ListView的基本要素;
5. 掌握ListView+ArrayAdapter应⽤实现的基本步骤。
6. 掌握ListView/GridView+SimpleAdapter的应⽤。
⼆、实验内容
1.Spinner、ListView控件与Adapter适配器(⼀)
创建⼀个Android项⽬,项⽬名称为“shiyan0501_班级_×××(学⽣姓名)”,要求:
界⾯构成:
①5个⽂本框⽤于显⽰提⽰信息“姓名:”、“年龄”、“专业”、“学历”、“爱好”;
②2个编辑框分别⽤于接收学⽣的姓名和年龄;
③3个单选按钮⽤于专业选择(计算机科学与技术、软件⼯程、⽹络⼯程);
④1个Spinner⽤于学历选择,使⽤数组资源获取列表项(⾼中、本科、硕⼠研究⽣、博⼠研究⽣、其他);
⑤n个复选框⽤于爱好选择(n>=3);
⑥3个普通按钮,⽂本分别显⽰为“录⼊”、“重置”、“显⽰”;
⑦1个ListView,⽤于显⽰录⼊的所有学⽣信息。
程序功能:
①单击“录⼊”按钮,将⽤户输⼊和选择的各项信息写⼊数组;
②单击“重置”按钮,清空⽤户输⼊的信息;
③单击“显⽰”按钮,将所有录⼊的学⽣信息在ListView中显⽰。
【⽂字描述】
⾸先设置布局为TableLayout.
添加5个⽂本框⽤于显⽰提⽰信息;
再添加2个编辑框分别⽤于接收学⽣的姓名和年龄;
3个单选按钮⽤于专业选择(物联、计科、软件),并将其放⼊⼀个RadioGroup中;1个Spinner⽤于学历选择,使⽤数组资源获取列表项(⾼中、本科、硕⼠研究⽣、博⼠研究⽣、其他);
4个复选框⽤于爱好选择,并将其放⼊⼀个TableRow中;
3个普通按钮,⽂本分别显⽰为“录⼊”、“重置”、“显⽰”;
1个ListView,⽤于显⽰录⼊的所有学⽣信息。
添加⼀个l⽂件,⾥⾯设置<string-array name="zhuanye">和<item>。
在JAVA代码中,获取到各个控件,通过内部类设置事件监听。进⾏相应的操作。
【布局l⽂件】
<TableLayout android="schemas.android/apk/res/android"
tools="schemas.android/tools"
layout_width="match_parent"
layout_height="match_parent"
paddingBottom="@dimen/activity_vertical_margin"
paddingLeft="@dimen/activity_horizontal_margin"
paddingRight="@dimen/activity_horizontal_margin"
paddingTop="@dimen/activity_vertical_margin"
context=".MainActivity">
context=".MainActivity">
<TextView
layout_width="wrap_content"
layout_height="wrap_content"
text="姓名"/>
<EditText id="@+id/ED_name"/> <TextView
layout_width="wrap_content"
layout_height="wrap_content"
text="年龄"/>
<EditText id="@+id/ED_age"/> <TextView
layout_width="wrap_content"
layout_height="wrap_content"
text="专业"/>
<RadioGroup
id="@+id/RadioGroup1"
orientation="horizontal">
<RadioButton
id="@+id/radio_IOT"
text="物联"/>
<RadioButton
id="@+id/radio_jike"
text="计科"/>
<RadioButton
id="@+id/radio_ruanjian"
text="软件"/>
</RadioGroup>
<TextView
layout_width="wrap_content"
layout_height="wrap_content"
text="学历"/>
<Spinner
id="@+id/spinner"
entries="@array/zhuanye"/> <TextView
layout_width="wrap_content"
layout_height="wrap_content"
text="爱好"/>
<TableRow id="@+id/CB_TR"> <CheckBox text="学习"/>
<CheckBox text="跑步"/>
<CheckBox text="看书"/>
<CheckBox text="⾳乐"/>
</TableRow>
<TableRow>
<Button
id="@+id/submit_BT"
layout_weight="1"
text="录⼊"/>
text="录⼊"/>
<Button
id="@+id/show_BT"
layout_weight="1"
text="显⽰"/>
<Button
id="@+id/reset_BT"
layout_weight="1"
text="重置"/>
</TableRow>
<ListView
id="@+id/listview"
layout_width="match_parent"
layout_height="wrap_content">
</ListView>
</TableLayout>
【Spinner组件的内容l⽂件】
(此⽂件放在res——values⽂件夹下)
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="zhuanye">
<item></item>
<item>⾼中</item>
<item>本科</item>
<item>硕⼠研究⽣</item>
<item>博⼠研究⽣</item>
<item>其他</item>
</string-array>
<string-array name="all_mess"></string-array>
</resources>
【布局l适配器⽂件】
(此⽂件与布局l⽂件放在⼀起)
<?xml version="1.0" encoding="utf-8"?>
<TextView android="schemas.android/apk/res/android"
layout_width="match_parent"
layout_height="match_parent"
id="@+id/myadapter"
textSize="15sp">
</TextView>
【MainActivity.java⽂件】
import ArrayList;
import List;
import Map;
import Bundle;
import Activity;
import ClipData.Item;
import Menu;
import View;
import View.OnClickListener;
import AdapterView;
import AdapterView.OnItemSelectedListener;
import ArrayAdapter;
import Button;
import CheckBox;
import CheckBox;
import EditText;
import ListView;
import RadioButton;
import RadioGroup;
import RadioGroup.OnCheckedChangeListener;
import SimpleAdapter;
import Spinner;
import TableRow;
import TextView;
public class MainActivity extends Activity {
TextView show;
EditText name_ET,age_ET;
RadioGroup dep ;
CheckBox hobby_CB;
TableRow CB_TR;
Spinner spinner;
ListView listview;
String name,age;
String department="";
String hobby="";
String xueli="";
Button sb_BT,rs_BT,show_BT;
View item;
ArrayList<String> allmess;
@Override
protected void onCreate(Bundle savedInstanceState){
setContentView(R.layout.activity_main);
name_ET=(EditText)findViewById(R.id.ED_name);
age_ET=(EditText)findViewById(R.id.ED_age);
dep =(RadioGroup)findViewById(R.id.RadioGroup1);
spinner=(Spinner)findViewById(R.id.spinner);
listview=(ListView)findViewById(R.id.listview);
allmess =new ArrayList<String>();
CB_TR=(TableRow)findViewById(R.id.CB_TR);
sb_BT=(Button)findViewById(R.id.submit_BT);
sb_BT.setOnClickListener(new ClickListener());
rs_BT=(Button)findViewById(set_BT);
rs_BT.setOnClickListener(new ClickListener());
show_BT=(Button)findViewById(R.id.show_BT);
show_BT.setOnClickListener(new ClickListener());
dep.setOnCheckedChangeListener(new OnCheckedChangeListener(){ @Override
public void onCheckedChanged(RadioGroup group,int checkedId){ // TODO Auto-generated method stub
RadioButton r;
if(checkedId!=-1){
r =(RadioButton)findViewById(checkedId);
Text().toString();
}else{
department="";
}
}
});
}
class ClickListener implements OnClickListener{
@Override
public void onClick(View v){
// TODO Auto-generated method stub
Id()){
case R.id.submit_BT:
name=Text().toString();
age=Text().toString();
hobby="";
for(int i=0;i<ChildCount();i++){
CheckBox c =(CheckBox) ChildAt(i);
if(c.isChecked()){
hobby+=c.getText().toString()+" ";
}
}
SelectedItem().toString();
allmess.add(name+" "+age+" "+department+" "+xueli+" "+hobby);
break;
case set_BT:
name_ET.setText("");
age_ET.setText("");
dep.clearCheck();
spinner.setSelection(0);
for(int i=0;i<ChildCount();i++){
CheckBox c =(CheckBox) ChildAt(i);
c.setChecked(false);
}
break;
case R.id.show_BT:
ArrayAdapter<String> adapter =new ArrayAdapter<String>(MainActivity.this,
// android.R.layout.simple_list_item_1,
R.layout.adapter,
allmess);
listview.setAdapter(adapter);
break;
}
}
}
}
2.Spinner、ListView控件与Adapter适配器(⼆)
创建⼀个Android项⽬,项⽬名称为“shiyan0502_专业_×××(学⽣姓名)”,要求:
界⾯构成:
①5个⽂本框⽤于显⽰提⽰信息“图书名称:”、“图书价格”、“图书版次”“图书类别”、“出版社”;
②2个编辑框分别⽤于接收图书的名称和价格;
③4个单选按钮⽤于版次选择(1版、2版、3版、3版以上);
④n个复选框⽤于类别选择(教育、计算机、⼩说、科技、励志、⽂学等);
⑤1个Spinner⽤于出版社选择,使⽤数组资源获取列表项(⼈民邮电出版社、科学出版社、⾼等教育出版社、清华⼤学出版社,其他
等);
⑥3个普通按钮,⽂本分别显⽰为“录⼊”、“重置”、“显⽰”;
⑦1个ListView,⽤于显⽰录⼊的所有图书信息。
程序功能:
①单击“录⼊”按钮,将⽤户输⼊和选择的各项信息写⼊数组;
②单击“重置”按钮,清空⽤户输⼊的信息;
③单击“显⽰”按钮,将所有录⼊的图书信息在ListView中显⽰。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。