1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 太原理工大学移动应用软件开发技术实验报告

太原理工大学移动应用软件开发技术实验报告

时间:2020-03-02 14:38:01

相关推荐

太原理工大学移动应用软件开发技术实验报告

课程名称 移动应用软件开发技术 实验题目 Android开发环境搭建

一、实验目的

搭建Android开发环境,学习使用Eclipse开发工具进行Android 应用开发的整个流程,为后续实验做好基本准备工作。

二、实验要求

1、掌握Android SDK的安装、配置、使用。

2、掌握Eclipse集成开发环境的使用。

3、实现第一个Android应用程序。

三、实验环境

Windows系统平台

四、实验原理及实验步骤

实验原理:

实验的运行建立在环境搭建成功的基础上

实验步骤:

1、下载安装JDK(包括jdk和jre两个文件,保证eclipse的成功运行)

2、下载安装Eclipse(Eclipse为Java应用程序及Android开发的IDE(集成开发环境),不需要安装,直接解压就行)

3、下载安装Android SDK(Android SDK提供了开发Android应用程序所需的API库和构建、测试和调试Android应用程序所需的开发工具。国内有墙,可能会安装失败,需要使用Android SDK在线更新镜像服务器来安装。)

4、为Eclipse安装ADT插件(使Eclipse和Android SDK进行关联)

5、配置Android虚拟设备(AVD)(在Eclipse中,运行“Window->AVD Manager”,在出现的AVD Manager对话框中显示了已经创建的模拟器;选择已经创建的模拟器,点击“Start”按钮,可以启动该模拟器。)

6、创建并运行第一个Android应用程序(启动Eclipse,选择File->New->Project…,选择Android 下的Android Application Project,单击Next按钮。

在创建新的Android应用项目对话框中,填写应用程序名,项目名,包名;选择新建项目的SDK版本等信息;然后一路点击next按钮,完成新建项目。

在Eclipse中启动模拟器(见步骤五)。

在项目中选择res–>values–>string.xml,将布局中调用的hello_world所代表的字符串改成Hello Android!

在Package Explore中选择新建的项目工程,选择Run->Run As>Android Appliction。)

五、实验核心代码

MainActivity.java:

package com.example.activity_demo;

import android.app.Activity;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);}

@Override

public 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;}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

// Handle action bar item clicks here. The action bar will

// automatically handle clicks on the Home/Up button, so long

// as you specify a parent activity in AndroidManifest.xml.

int id = item.getItemId();

if (id == R.id.action_settings) {

return true;}

return super.onOptionsItemSelected(item);}}

String.xml:

<?xml version="1.0" encoding="utf-8"?> Demo Hello android! Settings 六、实验结果及分析 实验结果: ![在这里插入图片描述](https://img-/0924090846542.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2NDExNzU0,size_16,color_FFFFFF,t_70)

实验分析:

通过这次实验的运行,出来的结果是hello,world!在安装过程中也出现了一些错误,通过解决后,在打开虚拟机的基础下运行得到结果。

课程名称 移动应用软件开发技术 实验题目 Android 基本控件的使用

一、实验目的

熟悉Android开发中的UI界面设计,主要包括了解和熟悉界面布局类型,以及常用控件的使用。

二、实验要求

1、了解View类及ViewGroup类。

2、掌握FrameLayout、LinearLayout、TableLayout、RelativeLayout、AbsoluteLayout五种界面布局类型。

3、掌握TextView、EditText、Button等常用控件的使用。

三、实验环境

Windows系统平台 eclipse软件

四、实验原理及实验步骤

实验原理:

完成一个注册界面,界面中至少要包含账号(EditText)、密码(EditText)、性别(RadioButton)、爱好(CheckBox)、出生日期(DatePicker)以及提交按钮(Button/ImageButton)等信息。界面要有适当的提示(TextView),布局要合理,背景及字体等设置要美观。

实验步骤:

1、创建一个新的项目名字为zhucejiemian。

2、其次设计注册界面的的草图,订好大体的布局。

3、从草图中得出以下的设计方案。

(1)一个外层的linearlayout。

设置linearlayput背景图,back.JPG

为纵向排列布局

一个textview控件显示应用标题,七个linearlayout嵌套。

(2)应用标题textView控件。

设置宽度full_parent,高度为wrap_content

一个textview控件显示应用标题,七个linearlayout嵌套。

(3)密码信息linearlayout

(4)性别信息linearlayout

(5)兴趣爱好textView控件

(6)兴趣爱好2个linearlayout

(7)出生日期textView

(8)出生信息linearlayout

(9)按钮linearlayout

五、实验核心代码

Login1Activity.java:

package com.example.zswb;

import android.app.Activity;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

public class Login1Activity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_login1);}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.login1, menu);

return true;}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

// Handle action bar item clicks here. The action bar will

// automatically handle clicks on the Home/Up button, so long

// as you specify a parent activity in AndroidManifest.xml.

int id = item.getItemId();

if (id == R.id.action_settings) {

return true;}

return super.onOptionsItemSelected(item);}}

2. res文件中drawable-hdpi拷入照片,如下所示:

3.Layout文件中activity_login1.xml:

Values文件中string.xml:

<?xml version="1.0" encoding="utf-8"?> Hello world!ZCWB 微博 微博注册 账号: 密码: 确认密码: 手机号: 篮球 羽毛球 排球 网球 性别: 日期: 特长: 男 女 注册 返回 六、实验结果及分析 ![在这里插入图片描述](https://img-/0924090825865.png) ![在这里插入图片描述](https://img-/0924090831401.png) 六、实验分析 通过这次实验在注册界面学会了如何布局,如何设置页面,设置了账号,密码,确认密码,手机号,性别,特长,日期等文本框,还有设置了编辑框,日期用的是DatePicker,还有注册和返回按钮用的是Button,通过设置按钮进行跳转到另一个页面,最后实现出整个程序。

课程名称 移动应用软件开发技术 实验题目 Activity、Intent组件的使用

一、实验目的

熟悉Activity和Intent组件的使用。Activity是Android中最常用的组件,实现应用程序的用户界面显示,一个Activity展现一个可视化的用户界面。Intent是各组件的桥梁,实现各组件之间的交互与通信。

二、实验要求

1、了解Activity的生命周期。

2、了解Intent的6个组成部分。

3、使用Inent实现Activity之间的跳转和信息传递。

三、实验环境

Windows系统平台 eclipse软件

四、实验原理

实验原理:

完成一个问答系统:有两个Activity分别为MainActivity和AnswerActivity。MainActivity为应用首页,里面包含一个EditText、一个TextView和一个Button,EditText可以输入问题,TextView为空,单击Button可以跳转到AnswerActivity上。AnswerActivity也包含一个EditText,一个TextView和一个Button,TextView显示从MainActivity传递来的问题,EditText可以输入答案,单击Button可以跳回到MainActivity,并把从AnswerActivity传回的答案显示在TextView里。如此循环往复。

五.实验核心代码

AnswerActivity.java:

package com.fan.problem;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;

import android.view.View.OnClickListener;

public class AnswerActivity extends Activity {

Button button;

String str=null;

EditText et;

TextView tv;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.answer_main);

button=(Button)findViewById(R.id.BT2);

button.setOnClickListener( new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

et=(EditText)findViewById(R.id.ET2);

Intent intent2=new Intent();

Bundle bundle1=new Bundle();

str=et.getText().toString();

bundle1.putString(“answer”, str);

intent2.putExtras(bundle1);

setResult(RESULT_OK, intent2);

finish();}});

String data=null;

Bundle extras=getIntent().getExtras();

if(extras!=null){

data=extras.getString(“problem”);

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

tv.setText(data);}}

@Override

public 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;}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

// Handle action bar item clicks here. The action bar will

// automatically handle clicks on the Home/Up button, so long

// as you specify a parent activity in AndroidManifest.xml.

int id = item.getItemId();

if (id == R.id.action_settings) {

return true;}

return super.onOptionsItemSelected(item);}}

MainActivity.java:

package com.fan.problem;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;

import android.view.View.OnClickListener;

public class MainActivity extends Activity {

Button button;

static final int REQUEST_CODE=1;

String str=null;

EditText et;

TextView tv;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

button=(Button)findViewById(R.id.BT1);

button.setOnClickListener( new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

Intent intent1=new Intent(MainActivity.this,AnswerActivity.class);

et=(EditText)findViewById(R.id.ET1);

Bundle bundle1=new Bundle();

str=et.getText().toString();

bundle1.putString(“problem”, str);

intent1.putExtras(bundle1);

startActivityForResult(intent1, REQUEST_CODE);}});}

protected void onActivityResult(int requestCode, int resultCode, Intent data) { if(requestCodeREQUEST_CODE){

if(resultCodeRESULT_OK){

String temp=null;

Bundle extras=data.getExtras();

if(extras!=null){

temp=extras.getString(“answer”); }

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

tv.setText(temp);}} }

private void OnActivityResult() {

// TODO Auto-generated method stub

}

@Override

public 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;}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

// Handle action bar item clicks here. The action bar will

// automatically handle clicks on the Home/Up button, so long

// as you specify a parent activity in AndroidManifest.xml.

int id = item.getItemId();

if (id == R.id.action_settings) {

return true;}

return super.onOptionsItemSelected(item);}}

activity_main.xml:

<Button android:id="@+id/BT1"answer_main.xml

android:layout_width=“fill_parent”

android:layout_height=“wrap_content”

android:text=“回答问题”

android:gravity=“center_horizontal”>

answer_main.xml:

AndroidManifest.xml:

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

六.实验结果

七.实验分析

通过这次实验,了解到如何使用Intent以实现进行各个Activity之间的通信,还有文本框,编辑框,按钮之间的定义及设置。

课程名称 移动应用软件开发技术 实验题目 Android 事件处理及高级控件

一、实验目的

掌握Android的事件处理机制;熟悉Android常用的三种适配器,并能与相关控件搭配使用;掌握一些常用复杂控件的使用;能结合控件、适配器及事件处理机制设计出较为复杂的功能。

二、实验要求

1、掌握基于回调机制的和基于监听接口的2种事件处理机制。

2、掌握ArrayAdapter、SimpleAdapter和BaseAdapter3种常用适配器。

3、掌握Spinner、ListView、GridView、Gallery、TabHost、ImageSwitcher等一些常用复杂控件的使用。

三、实验环境

Windows系统平台

四,实验原理及实验步骤

模拟一个APP下载中心界面,该界面由一个TabHost构成,包含2个选项卡,分别是“游戏”和“应用”,每个选项卡内部由一个ListView构成,分别显示热门游戏列表和热门应用列表,ListView中的每一项包含3部分,APP图标、APP名称、以及下载按钮。当点击ListView中某一项时,跳转到对应APP的详细介绍界面,此界面应包含一个返回按钮,点击后返回到列表界面。

五,实验核心代码

ContactsActivity.java:

package com.example2.text;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

public class ContactsActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.contacts);

Button btn = (Button)findViewById(R.id.buttonBack);btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubIntent intentback = new Intent();intentback.setClass(ContactsActivity.this, MainActivity.class);startActivity(intentback);finish();}});}}

DownActivity.java:

package com.example2.text;

import android.annotation.SuppressLint;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import android.view.View;

import android.widget.Button;

import android.widget.ProgressBar;

import android.widget.TextView;

public class DownActivity extends Activity {

//private int[] data= new int[100];//模拟填充长度为100的数组

//int hasData=0;//记录ProgressBar的完成进度

protected static final int INCREASE = 6;

//int status=0;

//ProgressBar bar,bar2;

TextView tv,tv1;

//创建一个负责更新进度的Handler

@SuppressLint(“HandlerLeak”)

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.loading);

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

tv1=(TextView) findViewById(R.id.text22);

final ProgressBar bar =(ProgressBar) findViewById(R.id.bar);

final Handler mHandler =new Handler(){

public void handleMessage(Message msg){

//表明消息由该程序发送

switch(msg.what)

{//bar.setProgress(status);

case INCREASE:

bar.incrementProgressBy(1);

tv.setText(“完成”+bar.getProgress()+"%");

if(bar.getProgress()>=100){

//tv.setText(“完成”+status+"%");

tv1.setText(“任务执行完毕”);

Intent intentback = new Intent();

intentback.setClass(DownActivity.this, MainActivity.class);

startActivity(intentback);

finish();}

break;}

super.handleMessage(msg);}};

new Thread(){

public void run(){

while(true){

//获取耗时操作的完成百分比

//status = dowork();

//mHandler.sendEmptyMessage(0x111);

mHandler.sendEmptyMessage(INCREASE);

if(bar.getProgress()>=100){

break; }

try{ Thread.sleep(40);}

catch(Exception e){

e.printStackTrace(); }} } }.start();

Button btn = (Button)findViewById(R.id.btn1);

btn.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

Intent intentback = new Intent();

intentback.setClass(DownActivity.this, MainActivity.class);

startActivity(intentback);

finish();}});}

Game01Activity.java:

package com.example2.text;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

public class Game01Activity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.game2);

Button btn = (Button)findViewById(R.id.buttonBack);

btn.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

Intent intentback = new Intent();

intentback.setClass(Game01Activity.this, MainActivity.class);

startActivity(intentback);

finish();}});}}

Game02Activity.java:

package com.example2.text;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

public class Game02Activity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.game3);

Button btn = (Button)findViewById(R.id.buttonBack);

btn.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

Intent intentback = new Intent();

intentback.setClass(Game02Activity.this, MainActivity.class);

startActivity(intentback);

finish();}});}}

Game03Activity.java:

package com.example2.text;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

public class Game03Activity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.game4);

Button btn = (Button)findViewById(R.id.buttonBack);

btn.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

Intent intentback = new Intent();

intentback.setClass(Game03Activity.this, MainActivity.class);

startActivity(intentback);

finish();}});}}

MainActivity.java:

package com.example2.text;

import android.app.Activity;

import android.app.TabActivity;

import android.content.Intent;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

import android.widget.TabHost;

public class MainActivity extends TabActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//setContentView(R.layout.normal);

TabHost tabHost = getTabHost();

Intent itNormal = new Intent(this, NormalActivity.class);

Intent itContact = new Intent(this, UtilityActivity.class);

tabHost.addTab(tabHost.newTabSpec(“tab1”)

.setIndicator(getResources().getText(R.string.tabtitle1),

getResources().getDrawable(R.drawable.publish))

.setContent(itNormal));

tabHost.addTab(tabHost.newTabSpec(“tab2”)

.setIndicator(getResources().getText(R.string.tabtitle2),

getResources().getDrawable(R.drawable.friend))

.setContent(itContact));

@Override

public 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;}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

// Handle action bar item clicks here. The action bar will

// automatically handle clicks on the Home/Up button, so long

// as you specify a parent activity in AndroidManifest.xml.

int id = item.getItemId();

if (id == R.id.action_settings) {

return true;}

return super.onOptionsItemSelected(item);}}

NormalActivity.java:

package com.example2.text;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.Gravity;

import android.view.LayoutInflater;

import android.view.View;

import android.view.View.OnClickListener;

import android.view.ViewGroup;

import android.view.ViewGroup.LayoutParams;

import android.widget.AdapterView;

import android.widget.BaseAdapter;

import android.widget.Button;

import android.widget.ImageView;

import android.widget.LinearLayout;

import android.widget.ListView;

import android.widget.TextView;

import android.widget.AdapterView.OnItemClickListener;

public class NormalActivity extends Activity {

LayoutInflater inflater;

ListView lv;

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.normal);

inflater = LayoutInflater.from(this);

lv = (ListView)findViewById(R.id.lv);

BaseAdapter ba = new BaseAdapter(){

String[] items = getResources().getStringArray(R.array.lvtexts);

String[] imgIds = getResources().getStringArray(R.array.gameicons);

@Override

public int getCount() {

// TODO Auto-generated method stub

return items.length;}

@Override

public Object getItem(int position) {

// TODO Auto-generated method stub

return null;}

@Override

public long getItemId(int position) {

// TODO Auto-generated method stub

return 0;}

@Override

public View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stub

convertView = inflater.inflate(R.layout.listitem, null);

ImageView iv=(ImageView) convertView.findViewById(R.id.img);

iv.setImageDrawable(getResources().getDrawable(getResources().getIdentifier(imgIds[position], “drawable”, getPackageName())));

TextView tv1=(TextView)convertView.findViewById(R.id.title);

tv1.setText(items[position]);

Button btn=(Button) convertView.findViewById(R.id.btn);

btn.setId(position);

btn.setOnClickListener(new OnClickListener() { @Override

public void onClick(View v) {

// TODO Auto-generated method stub

Intent load =new Intent();

load.setClass(NormalActivity.this, DownActivity.class);

startActivity(load);

finish();}});

return convertView;}};

lv.setAdapter(ba);

lv.setOnItemClickListener(new OnItemClickListener() {

@Override

public void onItemClick(AdapterView<?> parent, View v, int position,

long id) {

switch(position){ //判断点击的是哪一个选项

case 0: //书写日志

Intent intentDia = new Intent();

intentDia.setClass(NormalActivity.this, ContactsActivity.class);

startActivity(intentDia);

break;

case 1: //拍照上传

Intent intentAlb = new Intent();

intentAlb.setClass(NormalActivity.this, Game01Activity.class);

startActivity(intentAlb);

break;

case 2: //拍照上传

Intent game1 = new Intent();

game1.setClass(NormalActivity.this, Game02Activity.class);

startActivity(game1);

break;

case 3: //拍照上传

Intent game2 = new Intent();

game2.setClass(NormalActivity.this, Game03Activity.class);

startActivity(game2);

break;}}});}}

U01Activity.java:

package com.example2.text;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

public class U01Activity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.utility1);

Button btn = (Button)findViewById(R.id.buttonBack);

btn.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

Intent intentback = new Intent();

intentback.setClass(U01Activity.this, MainActivity.class);

startActivity(intentback);

finish();}});}}

U2Activity.java:

package com.example2.text;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

public class U2Activity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.utility2);

Button btn = (Button)findViewById(R.id.buttonBack);

btn.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

Intent intentback = new Intent();

intentback.setClass(U2Activity.this, MainActivity.class);

startActivity(intentback);

finish();}});}}

U3Activity.java:

package com.example2.text;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

public class U3Activity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.utility3);

Button btn = (Button)findViewById(R.id.buttonBack);

btn.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

Intent intentback = new Intent();

intentback.setClass(U3Activity.this, MainActivity.class);

startActivity(intentback);

finish();}});}}

U4Activity.java:

package com.example2.text;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

public class U4Activity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.utility4);

Button btn = (Button)findViewById(R.id.buttonBack);

btn.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

Intent intentback = new Intent();

intentback.setClass(U4Activity.this, MainActivity.class);

startActivity(intentback);

finish();}});}}

UtilityActivity.java:

package com.example2.text;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.Gravity;

import android.view.LayoutInflater;

import android.view.View;

import android.view.View.OnClickListener;

import android.view.ViewGroup;

import android.view.ViewGroup.LayoutParams;

import android.widget.AdapterView;

import android.widget.BaseAdapter;

import android.widget.Button;

import android.widget.ImageView;

import android.widget.LinearLayout;

import android.widget.ListView;

import android.widget.TextView;

import android.widget.AdapterView.OnItemClickListener;

public class UtilityActivity extends Activity {

LayoutInflater inflater;

ListView lv1;

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.normal1);

inflater = LayoutInflater.from(this);

lv1 = (ListView)findViewById(R.id.lv01);

BaseAdapter ba = new BaseAdapter(){

String[] items1 = getResources().getStringArray(R.array.lvtexts01);

String[] imgIds1 = getResources().getStringArray(R.array.utilityicons);

@Override

public int getCount() {

// TODO Auto-generated method stub

return items1.length;}

@Override

public Object getItem(int position) {

// TODO Auto-generated method stub

return null;}

@Override

public long getItemId(int position) {

// TODO Auto-generated method stub

return 0;}

@Override

public View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stub

convertView = inflater.inflate(R.layout.listitem, null);

ImageView iv=(ImageView) convertView.findViewById(R.id.img);

iv.setImageDrawable(getResources().getDrawable(getResources().getIdentifier(imgIds1[position], “drawable”, getPackageName())));

TextView tv1=(TextView)convertView.findViewById(R.id.title);

tv1.setText(items1[position]);

Button btn=(Button) convertView.findViewById(R.id.btn);

btn.setId(position);

btn.setOnClickListener(new OnClickListener() { @Override

public void onClick(View v) {

// TODO Auto-generated method stub

Intent load =new Intent();

load.setClass(UtilityActivity.this, DownActivity.class);

startActivity(load);

finish();}});

return convertView;}};

lv1.setAdapter(ba);

lv1.setOnItemClickListener(new OnItemClickListener() {

@Override

public void onItemClick(AdapterView<?> parent, View v, int position,

long id) {

switch(position){//判断点击的是哪一个选项case 0://书写日志Intent intentDia = new Intent();intentDia.setClass(UtilityActivity.this, U01Activity.class);startActivity(intentDia);break;case 1://拍照上传Intent intentAlb = new Intent();intentAlb.setClass(UtilityActivity.this, U2Activity.class);startActivity(intentAlb);break;case 2://拍照上传Intent y1 = new Intent();y1.setClass(UtilityActivity.this, U3Activity.class);startActivity(y1);break;case 3://拍照上传Intent y2 = new Intent();y2.setClass(UtilityActivity.this, U4Activity.class);startActivity(y2);break;}}});}}

图片资源:

activity_main.xml:

Contacts.xml:

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

game2.xml:

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

game3.xml:

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

game4.xml:

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

Listitem.xml:

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

Loading.xml:

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

Normal.xml:

normal1.xml:

utility1.xml:

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

utility2.xml:

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

utility3.xml:

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

utility4.xml:

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

样式资源:

AndroidManifest.xml:

六,实验结果

七,实验结果及分析

通过这次实验掌握基于回调机制的和基于监听接口的2种事件处理机制。学会如何使用监听器,并学会使用适配器。掌握复杂控件的使用。

实验地点 指导教师

课程名称 移动应用软件开发技术 实验题目 Android 菜单与对话框

一、实验目的

掌握Android中不同类型菜单和对话框控件的使用。

二、实验要求

1、掌握选择菜单(OptionMenu)、上下文菜单(ContextMenu)和子菜单(SubMenu)三种菜单的使用。

2、掌握提示对话框(AlertDialog)、进度对话框(ProgressDialog)、日期选择对话框(DatePickerDialog)和时间选择对话框(TimePickerDialog)四种对话框的使用。

三、实验内容

完成“掌上微博”中的相册管理模块,要求至少使用2个Activity,第一个Activity以列表的方式列出已有的相册标题,并使用选项菜单设置“新增”和“删除”菜单项,点击菜单项时显示相应的提示对话框;当点击相册列表中的某一项时,跳转到第二个Activity,在第二个Activity中联合使用ImageSwitcher和Gallery控件显示指定相册中的照片,并添加一个返回按钮可以返回到第一个Activity。

四、实验环境

Windows系统平台

五、实验代码

MainActivity.java:

package com.example.album_activity;

import android.animation.AnimatorSet.Builder;

import android.app.Activity;

import android.app.AlertDialog;

import android.content.DialogInterface;

import android.content.DialogInterface.OnClickListener;

import android.content.Intent;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.view.ViewGroup;

import android.widget.AdapterView;

import android.widget.AdapterView.OnItemClickListener;

import android.widget.BaseAdapter;

import android.widget.ImageView;

import android.widget.LinearLayout;

import android.widget.ListView;

import android.widget.TextView;

public class MainActivity extends Activity {

LayoutInflater inflater;

ListView lv;

LinearLayout addlayout;

private static final int item1 = 1;

private static final int item2 = 2;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

inflater = LayoutInflater.from(this);

lv = (ListView)findViewById(R.id.lv01);

BaseAdapter ba = new BaseAdapter() {

String[] titles = getResources().getStringArray(R.array.titles);

String[] icons = getResources().getStringArray(R.array.pericons);

@Override

public View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stub

convertView = inflater.inflate(R.layout.listitem, null);

ImageView iv= (ImageView)convertView.findViewById(R.id.img);

iv.setImageDrawable(getResources().getDrawable(getResources().getIdentifier(icons[position], “drawable”, getPackageName())));

TextView tv1= (TextView)convertView.findViewById(R.id.title);

tv1.setText(titles[position]);

return convertView;}

@Override

public long getItemId(int position) {

// TODO Auto-generated method stub

return 0;}

@Override

public Object getItem(int position) {

// TODO Auto-generated method stub

return null;}

@Override

public int getCount() {

// TODO Auto-generated method stub

return titles.length;}};

lv.setAdapter(ba);

lv.setOnItemClickListener(new OnItemClickListener() {

@Override

public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

// TODO Auto-generated method stub

switch(position){ //判断点击的是哪一个选项

case 0: //书写日志

Intent photo = new Intent();

photo.setClass(MainActivity.this, youxiActivity.class);

startActivity(photo);

break;

case 1: //拍照上传

Intent photo1 = new Intent();

photo1.setClass(MainActivity.this, yingyongActivity.class);

startActivity(photo1);

break;}}});}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

//getMenuInflater().inflate(R.menu.main, menu);

super.onCreateOptionsMenu(menu);//调用父类方法加入系统菜单

menu.add(1, item1, 0, “增加”);//增加一个新增菜单项

menu.add(1, item2, 0, “删除”);//增加一个删除菜单项

return true;}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

// Handle action bar item clicks here. The action bar will

// automatically handle clicks on the Home/Up button, so long

// as you specify a parent activity in AndroidManifest.xml.

android.app.AlertDialog.Builder dialog = new AlertDialog.Builder(this);

switch(item.getItemId()){

case item1 :

//addlayout = (LinearLayout) getLayoutInflater().inflate(R.layout.addview, null);//从另外的布局中关联组件

//dialog.setView(addlayout);

dialog.setTitle(“新建”);//设置对话框的标题

dialog.setMessage(“确定新建?”);//设置对话框显示的内容

dialog.setPositiveButton(“确定”, new OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

// TODO Auto-generated method stub

dialog.cancel();//关闭对话框}});//设置对话框的确定按钮

dialog.setNegativeButton(“取消”, new OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

// TODO Auto-generated method stub

dialog.cancel();//关闭对话框

}

});//设置对话框的确定按钮

dialog.create();

dialog.show();

break;

case item2 :

dialog.setTitle(“提示”);//设置对话框的标题

dialog.setMessage(“确定删除吗?”);//设置对话框显示的内容

dialog.setPositiveButton(“确定”, new OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

// TODO Auto-generated method stub

dialog.cancel();//关闭对话框}});//设置对话框的确定按钮

dialog.setNegativeButton(“取消”, new OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

// TODO Auto-generated method stub

dialog.cancel();//关闭对话框}});//设置对话框的确定按钮

dialog.create();

dialog.show();

break;}

return super.onOptionsItemSelected(item);}}

yingyongActivity.java:

package com.example.album_activity;

import android.app.Activity;

import android.content.Context;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.view.ViewGroup;

import android.view.Window;

import android.view.animation.AnimationUtils;

import android.widget.AdapterView;

import android.widget.BaseAdapter;

import android.widget.Button;

import android.widget.Gallery;

import android.widget.ImageSwitcher;

import android.widget.ImageView;

import android.widget.ViewSwitcher;

import android.widget.Gallery.LayoutParams;

public class yingyongActivity extends Activity implements

AdapterView.OnItemSelectedListener, ViewSwitcher.ViewFactory {

private ImageSwitcher mySwitcher;

private Integer[] myThmIds = {

R.drawable.n1, R.drawable.n2, R.drawable.n3,

R.drawable.n4};

private Integer[] myImgIds = {

R.drawable.n1,R.drawable.n2,R.drawable.n3,

R.drawable.n4};

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_NO_TITLE); //设置这个Activity没有标题栏

setContentView(R.layout.yingyong);

mySwitcher = (ImageSwitcher) findViewById(R.id.switcher1);

mySwitcher.setFactory(this);

mySwitcher.setInAnimation(AnimationUtils.loadAnimation(this,

android.R.anim.fade_in));

mySwitcher.setOutAnimation(AnimationUtils.loadAnimation(this,

android.R.anim.fade_out));

Gallery g = (Gallery) findViewById(R.id.gallery1);

g.setAdapter(new ImageAdapter(this));

g.setOnItemSelectedListener(this);

Button btn = (Button)findViewById(R.id.btn1);

btn.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

Intent intentback = new Intent();

intentback.setClass(yingyongActivity.this, MainActivity.class);

startActivity(intentback);

finish();}}); }

public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {

mySwitcher.setImageResource(myImgIds[position]); //为mSwitcher设选中的图片资源

}

public void onNothingSelected(AdapterView<?> parent) {

} public View makeView() {

ImageView iv = new ImageView(this);

iv.setBackgroundColor(0xFF000000); //设置背景颜色

iv.setScaleType(ImageView.ScaleType.FIT_CENTER); //

iv.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.FILL_PARENT,

LayoutParams.FILL_PARENT));

return iv;

} //自定义ImageAdapter适配器

public class ImageAdapter extends BaseAdapter {

private Context myContext;

public ImageAdapter(Context c) { myContext = c; }

public int getCount() { return myThmIds.length; }

public Object getItem(int position) { return position; }

public long getItemId(int position) { return position; }

public View getView(int position, View convertView, ViewGroup parent) { ImageView i = new ImageView(myContext);

i.setImageResource(myThmIds[position]);

i.setAdjustViewBounds(true);

i.setLayoutParams(new Gallery.LayoutParams(

LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

return i; }}}

youxiActivity.java:

package com.example.album_activity;

import android.app.Activity;

import android.content.Context;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.view.ViewGroup;

import android.view.Window;

import android.view.animation.AnimationUtils;

import android.widget.AdapterView;

import android.widget.BaseAdapter;

import android.widget.Button;

import android.widget.Gallery;

import android.widget.ImageSwitcher;

import android.widget.ImageView;

import android.widget.ViewSwitcher;

import android.widget.Gallery.LayoutParams;

public class youxiActivity extends Activity implements

AdapterView.OnItemSelectedListener, ViewSwitcher.ViewFactory {

private ImageSwitcher mySwitcher;

private Integer[] myThmIds = {

R.drawable.p0, R.drawable.p1, R.drawable.p2,

R.drawable.p3};

private Integer[] myImgIds = {

R.drawable.p0, R.drawable.p1, R.drawable.p2,

R.drawable.p3};

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_NO_TITLE); //设置这个Activity没有标题栏

setContentView(R.layout.youxi);

mySwitcher = (ImageSwitcher) findViewById(R.id.switcher);mySwitcher.setFactory(this);mySwitcher.setInAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_in));mySwitcher.setOutAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_out));Gallery g = (Gallery) findViewById(R.id.gallery);g.setAdapter(new ImageAdapter(this));g.setOnItemSelectedListener(this);Button btn = (Button)findViewById(R.id.btn);btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubIntent intentback = new Intent();intentback.setClass(youxiActivity.this, MainActivity.class);startActivity(intentback);finish();}}); }public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {mySwitcher.setImageResource(myImgIds[position]); //为mSwitcher设选中的图片资源}public void onNothingSelected(AdapterView<?> parent) {}public View makeView() { ImageView iv = new ImageView(this);iv.setBackgroundColor(0xFF000000); //设置背景颜色iv.setScaleType(ImageView.ScaleType.FIT_CENTER); //iv.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));return iv;} //自定义ImageAdapter适配器public class ImageAdapter extends BaseAdapter {private Context myContext;public ImageAdapter(Context c) { myContext = c; }public int getCount() { return myThmIds.length; }public Object getItem(int position) { return position; }public long getItemId(int position) { return position; }public View getView(int position, View convertView, ViewGroup parent) { ImageView i = new ImageView(myContext);i.setImageResource(myThmIds[position]);i.setAdjustViewBounds(true);i.setLayoutParams(new Gallery.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));return i; }}}

图片资源:

activity_main.xml:

addview.xml:

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

listitem.xml:

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

yingyong.xml:

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

youxi.xml:

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

样式资源:

AndroidManifest.xml:

六、实验结果

七、实验分析

了解到三种菜单的使用,了解提示对话框,进度对话框,日期选择对话框,和时间选择对话框,四种对话框的使用。

实验地点 指导教师

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。