relativelayout和spinner 详解

先看程序效果(图):

图一

 

图二

 

两个布局文件main.xml 和 anotheractivity.xml

android:layout_above="@id/XXX"          “本控件位于XXX控件上面”
android:layout_toLeftOf="@id/XXX"       “本控件位于XXX控件的左边”
android:layout_alignTop="@id/XXX"      “本控件的顶部和XXX控件的顶部对齐,即这个控件的顶部和XXX控件的顶部在同一行”
android:layout_alignParentLeft="true"   “本控件的左边是其父控件左边对齐,即这个控件向左靠齐它的父控件”
android:layout_marginRight="5dip"       “本控件的右边和它相邻的控件的左边或父控件的右边相隔5dip”


常用单位
dip:Density-independent Pixels - an abstract unit that is based on the physical density of the screen.

pt  :Points - 1/72 of an inch based on the physical size of the screen.

px :Pixels - corresponds to actual pixels on the screen. Not recommended.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent">
	<TextView
		android:id="@+id/emailTextView"
		android:layout_width="wrap_content"
		android:layout_height="wrap_content"
		android:layout_marginLeft="5dip"
		android:layout_marginTop="25dip"
		android:layout_alignParentTop="true"
		android:textStyle="bold"
		android:text="电子邮箱:"/>
	<EditText 
		android:id="@+id/emailEditText"
		android:layout_width="fill_parent"
		android:layout_height="wrap_content"
		android:layout_marginLeft="5dip"
		android:layout_marginRight="5dip"
		android:layout_marginTop="1dip"
		android:layout_below="@id/emailTextView"
		android:text="\@"/>
	<TextView 
		android:id="@+id/accountTextView"
		android:layout_width="wrap_content"
		android:layout_height="wrap_content"
		android:layout_marginLeft="5dip"
		android:layout_marginTop="5dip"
		android:layout_below="@id/emailEditText"
		android:textStyle="bold"
		android:text="账号:"/>
	<EditText 
		android:id="@+id/accoutEditText"
		android:layout_width="fill_parent"
		android:layout_height="wrap_content"
		android:layout_marginLeft="5dip"
		android:layout_marginRight="5dip"
		android:layout_marginTop="1dip"
		android:layout_below="@id/accountTextView"/>
	<TextView 
		android:id="@+id/passwordTextView"
		android:layout_width="wrap_content"
		android:layout_height="wrap_content"
		android:layout_marginLeft="5dip"
		android:layout_marginTop="5dip"
		android:layout_below="@id/accoutEditText"
		android:textStyle="bold"
		android:text="输入密码:"/>
	<EditText 
		android:id="@+id/passwordEditText"
		android:layout_width="fill_parent"
		android:layout_height="wrap_content"
		android:layout_marginLeft="5dip"
		android:layout_marginRight="5dip"
		android:layout_marginTop="1dip"
		android:password="true"
		android:layout_below="@id/passwordTextView"/>
	<TextView 
		android:id="@+id/password2TextView"
		android:layout_width="wrap_content"
		android:layout_height="wrap_content"
		android:layout_marginLeft="5dip"
		android:layout_marginTop="5dip"
		android:layout_below="@id/passwordEditText"
		android:textStyle="bold"
		android:text="确认密码:"/>
	<EditText 
		android:id="@+id/password2EditText"
		android:layout_width="fill_parent"
		android:layout_height="wrap_content"
		android:layout_marginLeft="5dip"
		android:layout_marginRight="5dip"
		android:layout_marginTop="1dip"
		android:password="true"
		android:layout_below="@id/password2TextView"/>
	<Button 
		android:id="@+id/nextButton"
		android:layout_width="150dp"
		android:layout_height="wrap_content"
		android:layout_marginRight="5dip"
		android:layout_marginBottom="5dip"
		android:layout_alignParentBottom="true"
		android:layout_alignParentRight="true"
		android:textStyle="bold"
		android:text="下一步"/>
</RelativeLayout>


 

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent">
	<TextView
		android:id="@+id/nameTextView"
		android:layout_width="wrap_content"
		android:layout_height="wrap_content"
		android:layout_marginLeft="5dip"
		android:layout_marginTop="25dip"
		android:layout_alignParentTop="true"
		android:textStyle="bold"
		android:text="真实姓名:"/>
	<EditText 
		android:id="@+id/nameEditText"
		android:layout_width="fill_parent"
		android:layout_height="wrap_content"
		android:layout_marginLeft="5dip"
		android:layout_marginRight="5dip"
		android:layout_marginTop="1dip"
		android:layout_below="@id/nameTextView"
		android:text=""/>
	<TextView
		android:id="@+id/certificationTextView"
		android:layout_width="wrap_content"
		android:layout_height="wrap_content"
		android:layout_marginLeft="5dip"
		android:layout_marginTop="5dip"
		android:textStyle="bold"
		android:layout_below="@id/nameEditText"
		android:text="证件类型:"/>
	<Spinner 
		android:id="@+id/certificationSpinner"
		android:layout_width="fill_parent"
		android:layout_height="wrap_content"
		android:layout_marginLeft="5dip"
		android:layout_marginTop="1dip"
		android:layout_marginRight="5dip"
		android:prompt="@string/certification_promt"
		android:layout_below="@id/certificationTextView"/>
	<TextView 
		android:id="@+id/certificationNumTextView"
		android:layout_width="wrap_content"
		android:layout_height="wrap_content"
		android:layout_marginLeft="5dip"
		android:layout_marginTop="5dip"
		android:layout_below="@id/certificationSpinner"
		android:text="证件号码:"/>
	<EditText 
		android:id="@+id/certificationNumEditText"
		android:layout_width="fill_parent"
		android:layout_height="wrap_content"
		android:layout_marginLeft="5dip"
		android:layout_marginRight="5dip"
		android:layout_marginTop="1dip"
		android:layout_below="@id/certificationNumTextView"
		android:text=""/>
	<Button 
		android:id="@+id/previousButton"
		android:layout_width="150dp"
		android:layout_height="wrap_content"
		android:layout_marginRight="5dip"
		android:layout_marginBottom="5dip"
		android:layout_alignParentBottom="true"
		android:layout_alignParentLeft="true"
		android:textStyle="bold"
		android:text="上一步"/>
	<Button 
		android:id="@+id/registerButton"
		android:layout_width="150dp"
		android:layout_height="wrap_content"
		android:layout_marginRight="5dip"
		android:layout_marginBottom="5dip"
		android:layout_alignParentBottom="true"
		android:layout_alignParentRight="true"
		android:textStyle="bold"
		android:text="注册"/>
</RelativeLayout>


 

两个activity,RelativeLayoutActivity.java和AnotherActivity.java

package com.zeph.android.relativelayout;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class RelativeLayoutActivity extends Activity {
	private Button nextButton;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		nextButton = (Button) findViewById(R.id.nextButton);
		nextButton.setOnClickListener(new NextButtonOnClickListener());
	}

	class NextButtonOnClickListener implements OnClickListener {

		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			Intent intent = new Intent();
			intent.setClass(RelativeLayoutActivity.this, AnotherActivity.class);
			startActivity(intent);
			finish();
		}

	}
}


 

package com.zeph.android.relativelayout;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.Toast;

public class AnotherActivity extends Activity {
	private Spinner certificationSpinner;
	private Button previousButton;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.anotheractivity);
		certificationSpinner = (Spinner) findViewById(R.id.certificationSpinner);
		previousButton = (Button) findViewById(R.id.previousButton);
		/*
		 * createFromResource方法创建一个ArrayAdapter对象,它将StringArray中每一项都绑定到Spinner上面。
		 * 这就是如何将数据显示到Spinner上面的方法。R.layout.simple_spinner_item是一个Spinner的标准布局。
		 * 也就是弹出来的整个选项框的布局方式。
		 */
		ArrayAdapter<CharSequence> spinnerAdapter = ArrayAdapter.createFromResource(AnotherActivity.this,
				R.array.certification_array,android.R.layout.simple_spinner_item);
		//设置选项框打开后,其中每一项的显示方式(外形,样子)。
		spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		certificationSpinner.setAdapter(spinnerAdapter);
		//给Spinner设置监听器
		certificationSpinner.setOnItemSelectedListener(new CertificationOnItemSelectedListener());
		previousButton.setOnClickListener(new PreviousButtonOnClickListener());
	}

	class CertificationOnItemSelectedListener implements OnItemSelectedListener {

		@Override
		public void onItemSelected(AdapterView<?> parent, View v, int position,
				long id) {
			// TODO Auto-generated method stub
			String []str = {"军官证","身份证"};
			Toast.makeText(AnotherActivity.this,"您选择的是:"+str[position],Toast.LENGTH_SHORT).show();
		}

		@Override
		public void onNothingSelected(AdapterView<?> arg0) {
			// TODO Auto-generated method stub

		}

	}

	class PreviousButtonOnClickListener implements OnClickListener {

		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			Intent intent = new Intent();
			intent.setClass(AnotherActivity.this, RelativeLayoutActivity.class);
			startActivity(intent);
			finish();
		}
	}
}


res/values/strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, RelativeLayoutActivity!</string>
    <string name="app_name">RelativeLayout</string>
    <string-array name="certification_array">
        <item>军官证</item>
        <item>身份证</item>
    </string-array>
    <string name="certification_promt">选择证件类型</string>
</resources>


记得两个activity,要在Manifest里面注册

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值