文档库 最新最全的文档下载
当前位置:文档库 › 20120230421-熊锐

20120230421-熊锐

20120230421-熊锐
20120230421-熊锐

湖北汽车工业学院手机应用系统开发实验指导书

班号T1323-4班学号20120230421 姓名熊锐

实验地点6教D305机房21号完成日期2015 年 3 月25 日1、2 节

实验一 UI界面设计

一、实验目的

1.掌握布局管理器的用法

2.掌握基本控件的用法

二、实验要求

1.理解布局管理器相关属性的含义,并熟练使用之

2.熟练使用TextView常用属性

3.熟练使用EditText常用属性

4.熟练使用Button常用属性以及View.OnClickListener监听器的用法

5.熟练使用CheckBox常用属性以及其CompoundButton.OnCheckedChangeListener监听器的用法

6.熟练使用RadioGroup、RadioButton常用属性和RadioGroup.OnCheckedChangeListener 监听器的用法

三、实验步骤

1.在Eclips中创建Android应用程序test1,修改其中res/layout目录下的布局文件main.xml,具体代码如下:

xmlns:android="https://www.wendangku.net/doc/e214721202.html,/apk/res/android"

xmlns:tools="https://www.wendangku.net/doc/e214721202.html,/tools"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:layout_marginLeft="10dip"

android:layout_marginRight="10dip"

android:layout_marginTop="10dip" android:orientation="vertical"

tools:context=".MainActivity">

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="用户名"/>

android:id="@+id/main_username"

android:layout_width="fill_parent"

android:layout_height="50dip"

android:hint="请输入用户名:"/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginTop="10dip"

android:text="密码"/>

android:id="@+id/main_password"

android:layout_width="fill_parent"

android:layout_height="50dip"

android:hint="请输入密码:"

android:inputType="numberPassword"/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginTop="10dip"

android:text="性别"/>

android:id="@+id/main_radiogroup"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:orientation="horizontal">

android:id="@+id/main_radiobutton1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="男"/>

android:id="@+id/main_radiobutton2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="女"/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginTop="10dip"

android:text="爱好"/>

android:id="@+id/main_checkbox1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="体育"/>

android:id="@+id/main_checkbox2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="音乐"/>

android:id="@+id/main_checkbox3"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="美术"/>

android:id="@+id/main_submit"

android:layout_width="200dip"

android:layout_height="50dip"

android:layout_gravity="center_horizontal"

android:layout_marginTop="10dip"

android:text="提交"/>

2.在src目录下的Activity类中,添加如下代码:

package com.example.ui_design;

import android.os.Bundle;

import android.app.Activity;

import android.content.Intent;

import android.text.Editable;

import android.view.Menu;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.CheckBox;

import android.widget.EditText;

import android.widget.RadioButton;

import android.widget.Toast;

public class MainActivity extends Activity {

private RadioButton radiobutton1,radiobutton2;

private CheckBox checkbox1,checkbox2,checkbox3;

private Button submit;

private EditText username,password;

private Intent intetn=new Intent();

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(https://www.wendangku.net/doc/e214721202.html,yout.activity_main);

radiobutton1=(RadioButton)this.findViewById(R.id.main_radiobutton 1);

radiobutton1.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

Toast.makeText(MainActivity.this, "男", Toast.LENGTH_SHORT).show();

}

});

radiobutton2=(RadioButton)this.findViewById(R.id.main_radiobutton 2);

radiobutton2.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

Toast.makeText(MainActivity.this, "女", Toast.LENGTH_SHORT).show();

}

});

checkbox1=(CheckBox)this.findViewById(R.id.main_checkbox1);

checkbox1.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

Toast.makeText(MainActivity.this, "体育", Toast.LENGTH_SHORT).show();

}

});

checkbox2=(CheckBox)this.findViewById(R.id.main_checkbox2);

checkbox2.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

Toast.makeText(MainActivity.this, "美术", Toast.LENGTH_SHORT).show();

}

});

checkbox3=(CheckBox)this.findViewById(R.id.main_checkbox3);

checkbox3.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

Toast.makeText(MainActivity.this, "音乐", Toast.LENGTH_SHORT).show();

}

});

submit=(Button)this.findViewById(R.id.main_submit);

submit.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

String temp="";

temp=temp+username.getText().toString()+"

"+password.getText().toString()+" ";

if(checkbox1.isChecked()){

temp=temp+checkbox1.getText().toString()+" ";

}

if(checkbox2.isChecked()){

temp=temp+checkbox2.getText().toString()+" ";

}

if(checkbox3.isChecked()){

temp=temp+checkbox3.getText().toString()+" ";

}

if(radiobutton1.isChecked()){

temp=temp+radiobutton1.getText().toString()+" ";

}

if(radiobutton2.isChecked()){

temp=temp+radiobutton2.getText().toString()+" ";

}

Toast.makeText(MainActivity.this, temp, Toast.LENGTH_SHORT).show();

intetn.setClass(getApplicationContext(), Login.class);

startActivity(intetn);

}

});

username=(EditText)this.findViewById(R.id.main_username);

password=(EditText)this.findViewById(R.id.main_password);

}

@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;

}

}

3.程序实现结果

(1)主活动界面如下:

(2)当点击性别按钮时,弹出对应的“男”或“女”。

(3)当选中某个复选框时,弹出对应的复选框文本,如下:

(3)当点击提交按钮时,弹出爱好+性别这些信息,如下:

注意:给出的代码只是将“爱好+性别”信息弹出,请自己将用户名和密码也追加进去,并弹出,即弹出“用户名+密码+爱好+性别”。

4.在Eclips中创建另外Android应用程序test2,修改其中res/layout目录下的布局文件main.xml,采用相对布局管理器进行布局,具体代码如下:

xmlns:android="https://www.wendangku.net/doc/e214721202.html,/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent">

android:layout_width="wrap_content"

android:layout_height="wrap_content" android:text="登陆窗体"

android:textSize="20sp"

android:layout_marginTop="10dip" android:layout_centerHorizontal="true" android:id="@+id/login_title"

/>

android:layout_width="fill_parent" android:layout_height="50dip" android:layout_marginTop="10dip" android:layout_marginLeft="10dip" android:layout_marginRight="10dip" android:hint="用户名"

android:id="@+id/login_username" android:layout_below="@id/login_title"

/>

android:layout_width="fill_parent" android:layout_height="50dip" android:layout_marginTop="10dip" android:layout_marginLeft="10dip" android:layout_marginRight="10dip"

android:hint="密码"

android:id="@+id/login_password"

android:layout_below="@id/login_username"

android:inputType="textPassword"

/>

android:layout_width="300dip"

android:layout_height="50dip"

android:layout_centerHorizontal="true"

android:text="登陆"

android:layout_marginTop="10dip"

android:id="@+id/login_submit"

android:layout_below="@id/login_password"

/>

5.在src目录下的Activity类中,添加代码,当点击登录按钮时,将用户名和密码信

息弹出。

package com.example.ui_design;

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.CheckBox;

import android.widget.EditText;

import android.widget.Toast;

public class Login extends Activity {

private Button submit;

private EditText username,password;

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(https://www.wendangku.net/doc/e214721202.html,yout.login);

submit=(Button)this.findViewById(R.id.login_submit);

username=(EditText)this.findViewById(R.id.login_username);

password=(EditText)this.findViewById(R.id.login_password);

submit.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

Toast.makeText(Login.this, "用户名:"+username.getText().toString()+"密码:"+password.getText().toString(), Toast.LENGTH_SHORT).show();

}

});

}

}

四、习题

1.Android应用程序中,res目录包含哪些子目录?每个子目录的作用是什么?怎样在Java程序中引用其中的某个图片文件或某个字符串?Drawable-xxx-----------------------------存储各种分辨率的图片Layout------------------------------------存放布局文件

Values------------------------------------存放常量文件

Menu-------------------------------------界面选项菜单XML文件

通过R文件引用如R.String.xxx、R.drawable.xxx;

2.AndroidManifest.xml中,以下属性表示什么意思?

(1)

声明Activity

(2) 设置Activity的类别

3. 属性gravity与layout_gravity的区别是什么?

Gravity是设置控件的子对象的对其方式,Layout_gravity是设置控件在父元素中的对其方式

4. "@+id/btn2"与"@id/btn2"的区别是什么?

"@+id/btn2"是在R文件里面定义一个id

"@id/btn2"是引用一个已存在的id

五、实验小结

1 编程遇到的问题及解决方案

在实验过程中用智能提示的时候将CheckBox的类型写错了,如下:

checkbox3=(Edittext)this.findViewById(R.id.main_checkbox3);

2 实验收获及体会

以前对layout_gravity和gravity的理解不深每次都是慢慢试验

3 不足之处及下一步需改进的地方

命名有待规范。

相关文档