21

2024-05

当前位置: 一佳范文网 > 范文大全 > 公文范文 >

Android应用开发基础

| 浏览量:

  Android 应用开发基础 实 验 指 导 书

  软件学院 软件工程系 包 晗

  实验内容

 实验一

 Activity 组件的生命周期 【实验类型】验证性

 【实验要求】必做 【实验目的】

 1.了解 Activity 组件的生命周期。

 2.了解 Activity 组件的运行状态。

 3.了解 Activity 组件的状态维护。

 4.掌握 Activity 组件的窗口。

 【实验内容】

 题 实验题 1 1.熟悉 Activity 组件的生命周期变化,创建一个 Android 工程,为活动起名为 First,建好后在中根据书中代码添加代表 Activity 生命周期的五个方法:onDestroy(),onPause(),onResume(),onStart(),onStop()。在调试窗口观察 Activity 组件的生命周期的调用情况。

 题 实验题 2 2.在前面的程序基础上增加一个按钮,使得按下按钮系统调用 finish()方法来结束 Activity。参考实验一中界面处理的方法,为界面添加一个按钮,然后需要在中添加下面代码。

 【参考程序】

 @Override

 public void onCreate (Bundle savedInstanceState) {

 ate(savedInstanceState);

 setContentView(R.);

 Log.i(Activity_ID, "oncreate has been called");

 Button finish=(Button)findViewById(R.id.testfinish);

 ClickListener(new OnClickListener() {

 public void onClick(View v) {

 finish();// 退出 activity

 } }

 });

 } }

 实验题 3 3.练习操作 Activity 的窗口。

 全屏显示:使 Activity 在启动的时候能铺满全屏,只要在 onCreate ()方法内ate(savedInstanceState); 语句后加上下面代码

 stWindowFeature(RE_NO_TITLE);

 setContentView(R.);

  getWindow().setFlags(_FULLSCREEN, _FULLSCREEN); 定制窗口标题:窗口标题实际上就是在界面上添加一个文件,代码如下 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=""

 android:layout_width="fill_parent" android:layout_height="fill_parent">

 <ImageView android:layout_width="wrap_content"

  android:layout_height="wrap_content" android:src="@drawable/icon" />

 <TextView android:id="@+id/text" android:layout_width="wrap_content"

  android:layout_height="wrap_content" android:layout_alignParentLeft="true"

  android:text="定制标题" />

 <ProgressBar android:layout_height="wrap_content"

  android:layout_gravity="center_vertical" style="?android:attr/progressBarStyleSmallTitle"

  android:layout_width="wrap_content" android:id="@+id/progress"></ProgressBar> </LinearLayout> 同时需要修改中的 onCreate ()方法,参考书中代码。

 为窗口应用风格:设置风格可以保持所有 Activity 窗口的风格一致,在文件中Activity 节点中增加一个属性 android:theme 即可实现,可以设置属性值为@android:style/g

 实验二

 界面布局的创建 【实验类型】设计性

 【实验要求】必做 【实验目的】

 1. 掌握用户界面结构。

 2. 掌握定义界面布局方法。

 3. 掌握声明界面布局方法。

 【实验内容】

 实验题 1. 创建一个 Android 工程,活动名称为,要求界面放置两个按钮,使用 LinearLayout 布局类,按照创建布局的步骤编写代码:①创建 ui 组件对象。②设置 ui 组件属性(设置按钮名称)。③创建布局对象。④设置布局对象属性(设置布局排列方向)⑤调用 addView()方法将 ui 组件添加到布局中。

 实验题 2. 在上一个工程的基础上,添加一个名为 show_的布局文件,熟悉声明界面布局的方法。参考工程已经建好的文件结构,放置四个 TextView 组件,起名为 rowone、rowtwo、rowthree、rowfour。最后将程序的界面设为新建的界面。

 实验题 3 3. . 在实验 2 的基础上添加 id 属性,练习引用声明的 ui,在 show_文件中,将第一个 TextView 组件添加一个 id 属性,代码如下:

 【参考程序】

 show_中添加代码 <TextView android:id="@+id/my_textview" android:text="row one" android:textSize="15pt"

  android:layout_width="fill_parent" android:layout_height="wrap_content"

  android:layout_weight="1" /> 中 onCreate()方法改为 @Override

  public void onCreate(Bundle savedInstanceState) {

  ate(savedInstanceState);

  setContentView(R._layout);

  TextView myTextView = (TextView) findViewById(R.id.my_textview);

  xt("changed !!");

 实验三

 资源管理 【实验类型】验证性

 【实验要求】必做 【实验目的】

 1.了解资源存储。

 2.了解资源映射。

 3.了解资源命名。

 4.了解资源访问。

 5.了解资源国际化。

 6.综合例子。

 【实验内容】

 实验题 1. 找到实验 1 中的 hello 工程,重新学习 Android 工程中的资源映射、资源命名和资源访问。

 题 实验题 2 2. . 练习 Nine-Patch 图片做背景图片。创建一个 Android 工程,活动名称为,新建 Android XML file,起名为,并把程序启动时的布局设为。

 【参考程序】

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=""

 android:orientation="vertical" android:layout_width="match_parent"

 android:layout_height="match_parent">

 <Button android:text="Button" android:id="@+id/button2"

  android:layout_width="wrap_content" android:background="@drawable/button9"

  android:layout_height="wrap_content"></Button>

 <Button android:text="Button" android:id="@+id/button1"

  android:layout_width="200dip" android:layout_weight="1"

  android:background="@drawable/button9"

  android:layout_height="wrap_content"></Button> </LinearLayout> 题 实验题 3 3. . 练习使用 XML 资源文件来定义颜色。在上一个工程中,在res/values 下新建 Android XML file,起名为。

 【参考程序】

 <?xml version="1.0" encoding="utf-8"?> <resources>

  <color name="mycolor">#7fff00ff</color> </resources> 题 实验题 4 4. . 练习使用 StateList 资源。在上一个工程中,在 res/drawable 下新建一个 Colorlist 资源,起名为。在布局文件中增加一个 button,并将 Colorlist 资源绑定到此 button,代码见书程序 5-9.

 【参考程序】

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="">

 <item android:color="#00ff00" />

 <item android:state_pressed="true"

 android:color="#ff0000" /> </selector> 题 实验题 5 5. . 练习资源国际化。在上一个工程中,在 res/values 下新建一个。通过修改模拟器的语言和地区,查看程序结果变化。

 【参考程序】

 <?xml version="1.0" encoding="utf-8"?> <resources>

  <string name="hello">\"Hello World, main!\"\n\r i am hyl</string>

  <string name="format_string">

 Hello %2$s ha ha. %1$s again

  </string>

  <string name="app_name"></string> </resources> 6 综合例子。做一个班级通讯录。由三个界面组成,一个主界面作为班级的首页,班级的同学以寝室为单位做一个列表;点击寝室进入寝室界面,罗列该寝室各个同学的名字;点击名字进入个人的界面,界面布局、风格由个人设计。

  实验四

 intent 的调用 【实验类型】验证性

 【实验要求】必做 【实验目的】

 1.了解 Intent 的组成。

 2.了解 Intent Filter 的功能。

 3.了解 Intent 解析机制。

 4.掌握 Intent 的调用方法。

 5.掌握 Intent 传递数据的方法。

 【实验内容】

 实验题 1. 熟悉 Intent Filter 的功能,了解 Intent 解析机制,显式及隐式调用 intent。创建一个 Android 工程,活动名称 main,添加四个类 ActivityOne、ActivityTwo、ServiceOne、ServiceTwo,新建两个布局 activityone、activitytwo,主界面放置四个按钮,前两个按钮的功能是把界面切换到activityone、activitytwo。后两个按钮可以在调试窗口看到启动服务的说明文字。活动代码参考书程序 6-2、程序 6-3、程序 6-4、程序 6-5、程序 6-6、程序 6-7,界面布局代码如下:

 【参考程序】

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=""

  android:orientation="vertical"

  android:layout_width="fill_parent"

  android:layout_height="fill_parent"

  > <Button android:text="activity1" android:id="@+id/activity1" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> <Button android:text="activity2" android:id="@+id/activity2" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> <Button android:text="service1" android:id="@+id/service1" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> <Button android:text="service2" android:id="@+id/service2" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> </LinearLayout>

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout

 xmlns:android=""

  android:layout_width="fill_parent"

  android:layout_height="fill_parent"> <TextView android:text="hello activity one" android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView> </LinearLayout>

  <?xml version="1.0" encoding="utf-8"?> <LinearLayout

 xmlns:android=""

  android:layout_width="fill_parent"

  android:layout_height="fill_parent"> <TextView android:text="hello activity two" android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView> </LinearLayout>

 题 实验题 2 2. . 在 1 题的基础上,通过修改及的代码,实现通过 intent 在活动之间传递数据:

 【参考程序】

 中修改按钮1的监视器方法:

 ClickListener(new ckListener() {

 @Override

 public void onClick(View v) {

  // TODO Auto-generated method stub

  Intent intent = new Intent();

  tra("str1", "我是传递的信息"); ass(, );

  startActivity(intent);

 }

 }); 中需要修改onCreate()方法,布局中添加一个TextView组件:

 private TextView textView;

 @Override protected void onCreate(Bundle savedInstanceState) {

  ate(savedInstanceState);

  ntentView(R.);

  textView = (TextView) iewById(R.id.textView1);

 Intent intent =tent();

 Bundle bundle = tras();

 String str1 = (String) ("str1");

 xt("传递过来的信息是 "+str1);

 }

  实验五

 简单 ui 组件 【实验类型】验证性

 【实验要求】必做 【实验目的】

 1.掌握 TextView,EditText,Button,RadioButton,Progressbar,CheckBox,SeekBar,RatingBar 的使用方法。

 【实验内容】

 实验题 1.练习TextView组件的使用方法。创建一个Android工程simplewidget,活动名称,创建一个活动。

 【参考程序】

 package ; import .Activity; import nt.rces; import ble; import .Bundle; import .Html; import t.TextView;

 public class TextViewDemo extends Activity {

 @Override

 public void onCreate(Bundle savedInstanceState)

 {

  ate(savedInstanceState);

  setContentView(R.iew);

  TextView textView = (TextView) findViewById(R.id.textview2);

  //

 xt("代码中动态赋值的文本");

  xt(tml("Hello <b>Android</b>,<font size=\"3\" color=\"red\">I am studying…</font>"));

  xtColor(.RED);

  Resources resources=getBaseContext().getResources();

  Drawable drawable=awable(R.round);

 ckgroundDrawable(drawable);

 } } 界面文件参考书程序11-1.

 实验题2 2. .练习EditText组件的使用方法。创建一个Android工程simplewidget,活动名称,创建一个活动。

 【参考程序】

 package ; import .Activity;

 import nt.Intent; import .Uri; import .Bundle;

 import .KeyEvent;

 import .rInfo; import t.EditText;

 import t.TextView;

  import t.torActionListener;

  public class edittextDemo extends Activity {

 @Override

 public void onCreate(Bundle savedInstanceState)

 {

  ate(savedInstanceState);

  setContentView(R.ext);

 } } 界面文件参考书程序11-5.

 实验题3 3. .练习Button组件的使用方法。创建一个Android工程simplewidget,活动名称,创建一个活动。

 【参考程序】

 package ; import .Activity; import .Bundle; import .View; import .ckListener; import t.Button; import t.ImageButton; import t.TextView;

 public class ButtonDemo extends Activity

 {

 TextView tv =null;

 String promote="你喜欢的手机品牌是?";

 @Override

 public void onCreate(Bundle savedInstanceState) {

  ate(savedInstanceState);

  setContentView(R.n);

  tv = (TextView) findViewById(R.id.TextView01);

  /*Button button1 = (Button) findViewById(R.id.Button01);

 ClickListener(this);

  Button button2= (Button) findViewById(R.id.Button02);

  ClickListener(this);

  Button button3 = (Button) findViewById(R.id.Button03);

  ClickListener(this);

  ClickListener(new OnClickListener() {

 public void onClick(View v) {

  Button b = (Button)v;

 tv.setText(promote+b.getText().toString());

  }

  });

  Button button2 = (Button) findViewById(R.id.Button02);

  ClickListener(new OnClickListener() {

 public void onClick(View v) {

  Button b = (Button)v;

 tv.setText(promote+b.getText().toString());

  }

  });

  Button button3 = (Button) findViewById(R.id.Button03);

  ClickListener(new OnClickListener() {

 public void onClick(View v) {

  Button b = (Button)v;

  tv.setText(promote+b.getText().toString());

 }

  });*/

  ImageButton button4 = (ImageButton) findViewById(R.id.ImageButton);

  ClickListener(new OnClickListener() {

 public void onClick(View v) {

  tv.setText(promote+" 暂时保密吆");

 }

  });

 }

  public void onClick(View v) {

  // TODO Auto-generated method stub

  Button b = (Button)v;

  if(b.getText()!=null)

  tv.setText(promote+b.getText().toString());

 } } 界面文件参考书程序11-7,11-10.

 实验题4 4. .练习RadioButton组件的使用方法。创建一个Android工程simplewidget,活动名称,创建一个活动。

 【参考程序】

 package ; import .Activity; import .Bundle; import t.RadioButton; import t.RadioGroup; import t.ckedChangeListener; import t.TextView;

 public class RadioDemo extends Activity {

  private TextView myTextView;

 private TextView myTextView2;

  private RadioButton Btn1;

 private RadioButton Btn2;

  private RadioButton Btn3;

 private RadioButton Btns1;

 private RadioButton Btns2;

  private RadioButton Btns3;

 private RadioGroup service;

  private RadioGroup device;

  /** Called when the activity is first created. */

  @Override

 public void onCreate(Bundle savedInstanceState) {

 ate(savedInstanceState);

  setContentView(R.);

  //通过ID找到TextView

  myTextView = (TextView) findViewById(R.id.myTextView);

 myTextView2 = (TextView) findViewById(R.id.myTextView2);

 //通过ID找到RadioButton

 Btn1 = (RadioButton) findViewById(R.id.moto);

  Btn2 = (RadioButton) findViewById(R.id.samsung);

 Btn3 = (RadioButton) findViewById(R.id.htc);

 //通过ID找到RadioGroup

 device = (RadioGroup) findViewById(R.id.rBtnGroup_mobile);

  //只要对RadioGroup进行监听

  CheckedChangeListener(new OnCheckedChangeListener() {

  public void onCheckedChanged(RadioGroup group, int checkedId) {

 // TODO Auto-generated method stub

  if(R.id.moto == checkedId){

 xt("您选择的设备是:" + xt().toString());

 }

 else if(R.id.samsung == checkedId){

 xt("您选择的设备是:" + xt().toString());

 }

 else if(R.id.htc == checkedId){

 xt("您选择的设备是:" + xt().toString());

  }

  }

 });

  //通过ID找到RadioButton

 Btns1 = (RadioButton) findViewById(R.id.tele);

  Btns2 = (RadioButton) findViewById(R.id.mbile);

 Btns3 = (RadioButton) findViewById(R.id.unicomm);

 //通过ID找到RadioGroup

 service = (RadioGroup) findViewById(R.id.rBtnGroup_service);

  //只要对RadioGroup进行监听

  CheckedChangeListener(new OnCheckedChangeListener() {

  public void onCheckedChanged(RadioGroup group, int checkedId) {

 // TODO Auto-generated method stub

  if(R.id.tele == checkedId){

 xt("您选择的运行商是:" + xt().toString());

 }

 else if(R.id.mbile == checkedId){

 xt("您选择的运行商是:" + xt().toString());

 }

 else if(R.id.unicomm == checkedId){

 xt("您选择的运行商是:" + xt().toString());

  }

  }

 });

  } } 界面文件参考书程序11-18.

 实验题5 5. .练习Progressbar组件的使用方法。创建一个Android工程simplewidget,活动名称,创建一个活动。

 【参考程序】

 package ; import .Activity; import .Bundle; import .Window;

 public class ProgressBarDemo extends Activity {

 /** Called when the activity is first created. */

 @Override

 public void onCreate(Bundle savedInstanceState) {

  ate(savedInstanceState);

  // 设置窗口进度条特性风格

  requestWindowFeature(RE_PROGRESS);

  // 请求窗口特色风格,这里设置成不明确的进度风格

  // requestWindowFeature(RE_INDETERMINATE_PROGRESS);

  setContentView(R.ess);

  // 设置进度条可见性

  setProgressBarVisibility(true);

  // setProgressBarIndeterminateVisibility(true);

 // 设置标题栏中的不明确的进度条是否可以显示

  // 设置进度条进度值,要乘以100的

  setProgress(60 * 100);

  setSecondaryProgress(80 * 100);

 } } 界面文件参考书程序11-20.

 实验题6 6. .练习CheckBox组件的使用方法。创建一个Android工程simplewidget,活动名称,创建一个活动。

 【参考程序】

 package ; import .Activity; import .Bundle; import t.CheckBox; import t.CompoundButton; import t.TextView;

 public class CheckBoxDemo extends Activity {

  private TextView tv;

 private CheckBox cb1;

 private CheckBox cb2;

 private CheckBox cb3;

 public void onCreate(Bundle savedInstanceState) {

 ate(savedInstanceState);

 setContentView(R.box);

 tv = (TextView)findViewById(R.id.textview1);

 cb1 = (CheckBox)findViewById(R.id.checkbox1);

 cb2 = (CheckBox)findViewById(R.id.checkbox2);

 cb3 = (CheckBox)findViewById(R.id.checkbox3);

 CheckedChangeListener(cbListener);

 CheckedChangeListener(cbListener);

  CheckedChangeListener(cbListener);

  }

 private ckedChangeListener cbListener =

 new ckedChangeListener(){

 public void onCheckedChanged(CompoundButton buttonView,boolean isChecked)

 {

 String stv = getString(R.eos);

 String scb1 = getString(R.);

 String scb2 = getString(R.id);

 String scb3 = getString(R.e);

 String temp=stv;

  if(cked()== true )temp+=scb1;

 if(cked()== true )temp+=" "+scb2;

 if(cked()== true )temp+=" "+scb3;

  tv.setText(temp);

  }

 };

 } 界面文件参考书程序11-25.

 实验题7 7. .练习SeekBar组件的使用方法。创建一个Android工程simplewidget,活动名称,创建一个活动。

 【参考程序】

 package ; import .Activity; import .Bundle; import t.SeekBar; import t.kBarChangeListener; import t.TextView; import t.Toast;

 public class SeekDemo

 extends Activity {

 /** Called when the activity is first created. */

 @Override

 public void onCreate(Bundle savedInstanceState) {

  ate(savedInstanceState);

  setContentView(R.ar);

  //找到拖动条和文本框

  final SeekBar sb = (SeekBar) findViewById(R.id.SeekBar01);

  final TextView tv1 = (TextView) findViewById(R.id.TextView01);

  //设置拖动条的初始值和文本框的初始值

  sb.setMax(100);

  sb.setProgress(30);

  xt("当前进度:" + sb.getProgress());

  //设置拖动条改变监听器

  OnSeekBarChangeListener osbcl = new OnSeekBarChangeListener() {

  public void onProgressChanged(SeekBar seekBar, int progress,

 boolean fromUser) {

  xt("当前进度:" + sb.getProgress());

  ext(getApplicationContext(), "onProgressChanged",

  H_SHORT).show();

 }

  public void onStartTrackingTouch(SeekBar seekBar) {

 ext(getApplicationContext(), "onStartTrackingTouch",

  H_SHORT).show();

 }

  public void onStopTrackingTouch(SeekBar seekBar) {

  ext(getApplicationContext(), "onStopTrackingTouch",

  H_SHORT).show();

 }

  };

  //为拖动条绑定监听器

  sb.setOnSeekBarChangeListener(osbcl);

 } } 界面文件参考书程序11-27.

 实验题8 8. .练习RatingBar组件的使用方法。创建一个Android工程simplewidget,活动名称,创建一个活动。

 【参考程序】

 package ; import .Activity; import .Bundle; import t.RatingBar; import t.ingBarChangeListener;

 public class RatingBarDemo extends Activity {

 /** Called when the activity is first created. */

 @Override

 public void onCreate(Bundle savedInstanceState) {

  ate(savedInstanceState);

  setContentView(R.gbar);

  final RatingBar rb1 = (RatingBar) findViewById(R.id.ratingBar1);

  final RatingBar rb2 = (RatingBar) findViewById(R.id.ratingBar2);

  final RatingBar rb3 = (RatingBar) findViewById(R.id.ratingBar3);

  OnRatingBarChangeListener orbcl = new OnRatingBarChangeListener() {

 public void onRatingChanged(RatingBar ratingBar, float rating,

 boolean fromUser) {

  switch (()) {

  case R.id.ratingBar1:

 // 把第一个评分条的值取出来设置给其他评分条

 ting(ting());

 ting(ting() * 2);// 十颗星所以乘以2

 break;

  case R.id.ratingBar2:

 ting(ting());

  ting(ting() * 2);

 break;

  case R.id.ratingBar3:

 ting(ting() / 2);

 ting(ting() / 2);

 break;

  }

 }

  };

  // 绑定监听器

  RatingBarChangeListener(orbcl);

  RatingBarChangeListener(orbcl);

  RatingBarChangeListener(orbcl);

 } } 界面文件参考书程序11-29.

  实验六

 高级 ui 组件 【实验类型】验证性

 【实验要求】必做 【实验目的】

 1.了解 GridView,Gallery,SlidingDrawer,AutoCompleteTextView,TabHost的使用方法。

 【实验内容】

 实验题1 1. .练习GridView组件的使用方法。创建一个Android工程seniorwidget,活动名称,创建一个活动。

 【参考程序】

 package t.demo; import .ArrayList; import .HashMap; import .Activity; import .Bundle; import .View; import t.AdapterView; import t.mClickListener; import t.GridView; import t.SimpleAdapter;

 public class SimpleGridDemo extends Activity {

 public void onCreate(Bundle savedInstanceState) {

  ate(savedInstanceState);

  setContentView(R.egrid);

  GridView gridview = (GridView) findViewById(R.id.gridview);

  // 生成动态数组,并且转入数据

  ArrayList<HashMap<String, Object>> lstImageItem = new ArrayList<HashMap<String, Object>>();

  for (int i = 0; i < 10; i++) {

 HashMap<String, Object> map = new HashMap<String, Object>();

 ("ItemImage", R.);// 添加图像资源的ID

 ("ItemText", "应用" + Of(i));// 按序号做ItemText

 (map);

  }

  // 生成适配器的ImageItem <====> 动态数组的元素,两者一一对应

 SimpleAdapter saImageItems = new SimpleAdapter(this,

 lstImageItem,// 数据来源

  R.egriditem,// night_item的XML实现

  // 动态数组与ImageItem对应的子项

 new String[] { "ItemImage", "ItemText" },

 // ImageItem的XML文件里面的一个ImageView,两个TextView ID

  new int[] { R.id.ItemImage, R.id.ItemText });

  // 添加并且显示

  apter(saImageItems);

  // 添加消息处理

  ItemClickListener(new ItemClickListener());

 }

 // 当AdapterView被单击(触摸屏或者键盘),则返回的Item单击事件

 class ItemClickListener implements OnItemClickListener {

  public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,

  long arg3) {

 HashMap<String, Object> item = (HashMap<String, Object>) arg0

 .getItemAtPosition(arg2);

 setTitle((String) ("ItemText"));

  }

 } } 界面文件参考书程序12-11.

 实验题2 2. .练习Gallery组件的使用方法。创建一个Android工程seniorwidget,活动名称,创建一个活动。

 【参考程序】

 package t.demo; import .Activity; import nt.Context; import .Bundle; import .View; import .ViewGroup; import t.AdapterView; import t.mClickListener; import t.BaseAdapter; import t.Gallery; import t.ImageView;

 public class GralleryDemo extends Activity {

  /** Called when the activity is first created. */

  private Gallery gallery;

 @Override

  public void onCreate(Bundle savedInstanceState) {

  ate(savedInstanceState);

  setContentView(R.ery);

  //初始化Gallery。

  gallery=(Gallery)findViewById(R.id.gallery);

 try {

 //设置Gallery的Adapter。

 apter(new ImageAdapter());

  } catch (IllegalArgumentException e) {

 // TODO Auto-generated catch block

 e.printStackTrace();

  } catch (IllegalAccessException e) {

 // TODO Auto-generated catch block

 e.printStackTrace();

  }

  //点击事件。

  ItemClickListener(new OnItemClickListener(){

  public void onItemClick(AdapterView<?> arg0, View arg1, int itemid,

 long arg3) {

  // TODO Auto-generated method stub

  setTitle("您点击了第"+Of(itemid+1)+"项");

  }

 });

  }

  class ImageAdapter extends BaseAdapter {

 //定义Context,即Activity

 private Context context;

 //定义整型数组 即图片源。

  private Integer image[]={R.id,R.y,

  R.,R.,

  R.,R.};

  public ImageAdapter(Context c) throws IllegalArgumentException, IllegalAccessException{

  context=c;

 }

 public int getCount() {

  // TODO Auto-generated method stub

  //获取图片个数。

  return _VALUE;

  //return h;

 }

 public Object getItem(int position) {

  // TODO Auto-generated method stub

  //获取图片在库中的位置。

  return position;

 }

  public long getItemId(int position) {

  // TODO Auto-generated method stub

  //获取图片在库中的位置。

 return position;

 }

  public View getView(int position, View convertView, ViewGroup parent) {

  // TODO Auto-generated method stub

  ImageView imageview=new ImageView(context);

  //给imageView设置图片资源。

  ageResource(image[position%h]);

  //ageResource(image[position]);

  //设置比例类型。

  aleType(_XY);

  //设置图片布局和显示大小。

  youtParams(new tParams(100,100));

  //设置图片之间的距离。

  dding(15,0,15,0);

  return imageview;

 }

  } } 界面文件参考书程序12-13.

 实验题3 3. .练习SlidingDrawer组件的使用方法。创建一个Android工程seniorwidget,活动名称,创建一个活动。

 【参考程序】

 package t.demo; import .Activity; import .Bundle; import t.ImageButton; import t.SlidingDrawer; import t.TextView;

 public class SlidingDrawerDemo extends Activity {

 private SlidingDrawer mDrawer;

 private ImageButton imbg;

 private TextView tv;

 @Override

  protected void onCreate(Bundle savedInstanceState) {

 // TODO Auto-generated method stub

 ate(savedInstanceState);

 setContentView(R.ngdrawer);

  imbg=(ImageButton)findViewById(R.id.handle);

 mDrawer=(SlidingDrawer)findViewById(R.id.slidingdrawer);

 tv=(TextView)findViewById(R.id.tv);

  DrawerOpenListener(new werOpenListener()

  {

  public void onDrawerOpened() {

  ageResource(R.);

  }

 });

  DrawerCloseListener(new werCloseListener(){

 public void onDrawerClosed() {

  ageResource(R.);

  }

 });

  DrawerScrollListener(new werScrollListener(){

  public void onScrollEnded() {

  }

  public void onScrollStarted() {

  }

 });

  }

 } 界面文件参考书程序12-16.

 实验题4 4. .练习AutoCompleteTextView组件的使用方法。创建一个Android工程seniorwidget,活动名称,创建一个活动。

 【参考程序】

 package t.demo; import .Activity; import .Bundle; import t.ArrayAdapter; import t.AutoCompleteTextView; import t.MultiAutoCompleteTextView; import t.TextView;

 public class AutoCompleteDemo

 extends Activity {

 /** Called when the activity is first created. */

 private static final String[] nContent = { "zhuo", "kobe", "zhuori",

 "kobebryant", "ko8e", "ko8ebryant" };

 private AutoCompleteTextView autoView = null;

 private MultiAutoCompleteTextView autoView2 = null;

  @Override

 public void onCreate(Bundle savedInstanceState) {

  ate(savedInstanceState);

  setContentView(R.omplete);

  ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,

  android.R.e_dropdown_item_1line, nContent);

  autoView = (AutoCompleteTextView) findViewById(R.id.autoView);

 // 将adapter添加到AutoCompleteTextView中

  apter(adapter);

  reshold(4);

  //多行处理

  autoView2 = (MultiAutoCompleteTextView) findViewById(R.id.autoView2);

  kenizer(new Tokenizer());

  apter(adapter);

  reshold(4);

 } } 界面文件参考书程序12-18.

 实验题5 5. .练习TabHost组件的使用方法。创建一个Android工程seniorwidget,活动名称,创建一个活动实现分页视图的便捷实现;创建一个活动实现分页视图的普通实现。

 【参考程序】

 package t.demo; import .AlertDialog; import .Dialog; import .TabActivity; import nt.DialogInterface; import .Bundle; import .LayoutInflater; import t.TabHost;

 public class tabHostDemo1 extends TabActivity {

 /** Called when the activity is first created. */

 private TabHost tabHost;

 @Override

 public void onCreate(Bundle savedInstanceState) {

  ate(savedInstanceState);

  // setContentView(R.);

  tabHost = bHost();

  LayoutInflater li = (this);

  li.inflate(R.st1, bContentView(), true);

  b(bSpec("Tab_1").setContent(R.id.tab1)

  .setIndicator("TAB1",

 sources().getDrawable(R.id)));

  b(bSpec("Tab_2").setContent(R.id.tab2)

  .setIndicator("TAB2",

 sources().getDrawable(R.y)));

  b(bSpec("Tab_3").setContent(R.id.tab3)

 .setIndicator("TAB3",

 sources().getDrawable(R.)));

  rrentTab(1); //

 ckgroundColor();

  TabChangedListener(new ChangeListener() {

 public void onTabChanged(String tabId) {

  Dialog dialog = new er()

  .setTitle("提示").setMessage(

  "选中了" + tabId + "选项卡").setIcon(R.).setPositiveButton("确定", new ckListener(){

 public void onClick(DialogInterface dialog,

 int which) {

  // TODO Auto-generated method stub

 }

 }).create();

  ();

 }

  });

 } } 界面文件参考书程序12-22.

  package t.demo; import .Activity; import .Bundle; import .Log; import t.TabHost;

 public class tabHostDemo2

 extends Activity {

 /** Called when the activity is first created. */

 private TabHost tabHost;

 @Override

 public void onCreate(Bundle savedInstanceState) {

  ate(savedInstanceState);

 setContentView(R.st2);

  try{

 tabHost = (TabHost) iewById(R.id.TabHost01);

 ();

  b(bSpec("tab_1")

 .setContent(R.id.LinearLayout1)

  .setIndicator("TAB1",sources().getDrawable(R.id)));

 b(bSpec("tab_2")

 .setContent(R.id.LinearLayout2).setIndicator("TAB2",

 sources().getDrawable(R.y)));

  b(bSpec("tab_3")

 .setContent(R.id.LinearLayout3).setIndicator("TAB3",

 sources().getDrawable(R.)));

 rrentTab(1);

  }catch(Exception ex){

 ex.printStackTrace();

 Log.d("EXCEPTION", ex.getMessage());

  }

 } } 界面文件参考书程序12-24.

  实验七

 实现菜单和通知 【实验类型】验证性

 【实验要求】必做 【实验目的】

 1.了解选项菜单的使用方法。

 2.了解上下文菜单的使用方法。

 3.了解子菜单的使用方法。

 4.了解 Intent 动态菜单选项的使用方法。

 【实验内容】

 实验题 1.练习定制选项菜单。创建一个Android工程MyMenuDemo,活动名称。运行后实现通过选项菜单来更新界面中的文本框的背景颜色。

 【参考程序】

 package .mymenu; import .Activity; import nt.Intent; import ; import .Bundle; import .ContextMenu; import .Menu; import .MenuItem; import .View; import t.TextView; import t.Toast;

 public class main extends Activity {

 TextView selection;

  public static final int Blue_ID = +1;

 public static final int CYAN_ID = +2;

 public static final int RED_ID = +3;

 public static final int YELLOW_ID = +4;

 public static final int GREEN_ID = +5;

 public static final int DKGRAY_ID = +6;

 public static final int MEGENTA_ID = +7;

 @Override

 public void onCreate(Bundle icicle) {

  ate(icicle);

  setContentView(R.);

  selection=(TextView)findViewById(R.id.selection);

  //registerForContextMenu(selection);

 }

  @Override

 public boolean onCreateOptionsMenu(Menu menu) {

  populateMenu(menu);

  return(ateOptionsMenu(menu));

 }

 @Override

 public boolean onOptionsItemSelected(MenuItem item) {

  return(applyMenuChoice(item) ||

  ionsItemSelected(item));

  //return( ionsItemSelected(item));

 }

 private void populateMenu(Menu menu) {

 (, RED_ID, , "红色").setIcon(R.te).setAlphabeticShortcut("R").setIntent(i);

  (, Blue_ID, , "蓝色").setIcon(R.te).setAlphabeticShortcut("B");

  (, YELLOW_ID, , "黄色").setIcon(R.te).setAlphabeticShortcut("Y");

  (, CYAN_ID, , "蓝绿").setIcon(R.te).setAlphabeticShortcut("C");

  (, GREEN_ID, , "绿色").setIcon(R.te).setAlphabeticShortcut("G");

  (, DKGRAY_ID, , "深灰").setIcon(R.te).setAlphabeticShortcut("D");

  (, MEGENTA_ID, , "紫罗兰").setIcon(R.te).setAlphabeticShortcut("M");

 }

  private boolean applyMenuChoice(MenuItem item) {

  switch (emId()) {

 case Blue_ID:

 ckgroundColor();

  return(true);

 case CYAN_ID:

  ckgroundColor();

  return(true);

 case DKGRAY_ID:

  ckgroundColor(Y);

  return(true);

 case GREEN_ID:

  ckgroundColor();

  return(true);

 case MEGENTA_ID:

  ckgroundColor(TA);

  return(true);

 case RED_ID:

  ckgroundColor();

  return(false);

 case YELLOW_ID:

  ckgroundColor(W);

 return(true);

  }

  return(false);

 } } 界面文件参考书程序13-1.

 实验题2 2. .练习菜单与Intent,使用setIntent方法为每个MenuItem绑定Intent对象。修改1题的工程代码,参考书程序13-3修改代码,观察结果变化。

 实验题3 3. .练习上下文菜单的使用。修改1题的工程代码,参考书程序13-4修改代码,观察结果变化。

 实验题4 4. .练习Intent动态菜单选项。在1题的工程,添加两个活动、,res/menu下添加界面,运行观察结果变化。

 【参考程序】

 package .mymenu; import .Activity; import nt.Intent; import .Bundle; import .ContextMenu; import .Menu; import .MenuInflater; import .MenuItem; import .View; import t.TextView;

 public class DynamicIntentMenu extends Activity {

 TextView selection;

  @Override

 public void onCreate(Bundle icicle) {

  ate(icicle);

  setContentView(R.);

  selection=(TextView)findViewById(R.id.selection);

  registerForContextMenu(selection);

 }

 @Override

 public void onCreateContextMenu(ContextMenu menu, View v,

 xtMenuInfo menuInfo) {

 new MenuInflater(getApplication()).inflate(R., menu);

  Intent intent = new Intent(".IC"); tegory(ORY_SELECTED_ALTERNATIVE); //注意这与创建选项菜单时是不同的

 // Search and populate the menu with acceptable offering applications.

  tentOptions(

 R.id.dynamic,

 // Menu group to which new items will be added

 0,

 // Unique item ID (none)

 0,

 // Order for the items (none)

 mponentName(),

  // The current activity name

 null,

  // Specific items to place first (none)

 intent, // Intent created above that describes our requirements

 0,

 // Additional flags to control items (none)

 null);

 // Array of MenuItems that correlate to specific items (none)

 }

 @Override

 public boolean onContextItemSelected(MenuItem item) {

  return textItemSelected(item);

 }

  @Override

 public boolean onCreateOptionsMenu(Menu menu) {

  new MenuInflater(getApplication()).inflate(R., menu);

 Intent inte...

推荐访问:基础 开发 Android

最新推荐New Ranking

1幼儿园中班六一活动方案

温暖的阳光,诱人的花香,激动的脸庞,六一国际儿童节在小朋友和老师的热烈期盼中来到了我们的身旁。...

2某市医疗保障工作要点

2022年是党的二十大召开之年,也是医保助力共同富裕的奋进之年。2022年全市医疗保障工作的总体要求是...

3区委书记在市委招商专题汇报会上讲话提纲

今年来,XX区积极响应中央、省、市号召,立足当前经济形势,抢抓发展机遇,充分挖掘中心城区区位优势...

4在局推进基层正风反腐工作会议上讲话

同志们:今天召开这次会议主要是贯彻落实3月24日我区基层正风反腐专项治理工作会议精神,部署开展我局...

5农村“五治”工作实施方案

为深入学习贯彻XXX关于实施乡村振兴战略重要讲话精神,打赢改善农村人居环境这场硬仗,践行为民宗旨、厚...

6在市政协五届一次会议开幕会上讲话

市政协四届一次会议以来的五年,是XX砥砺前行、克难攻坚的五年,也是拼搏进取、满载荣光的五年。五年...

7市全面推行证明事项告知承诺制工作实施方案

为进一步深化“放管服”改革,深入开展“减证便民”行动,优化营商环境,激发市场主体活力和社会创造...

8党课讲稿:意识形态领域形势何以发生全局性根本性转变

党的十九届六中全会通过的《中共中央关于党的百年奋斗重大成就和历史经验的决议》(以下简称《决议》...

9研讨发言:科技创新引领,构建现代产业体系(集团公司董事长,党委书记)

中央经济工作会议把“强化国家战略科技力量”“增强产业链供应链自主可控能力”提到了前所未有的战略...

10在全省药品监管工作会议上经验交流发言

2021年,全市市场监管系统在省药监局和市委、市政府的正确领导下,坚持以XXX“四个最严”为指导,聚焦...