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 thephysical 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. Notrecommended.

<?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、付费专栏及课程。

余额充值