Mars安卓第一季

*为控件绑定监听器

     *获取代表控件的对象

             findViewById()

     *定义一个类,实现监听器接口

              可以是直接继承,也可以是定义一个内部类继承

     *生成监听器对象

     *为控件绑定监听器对象

              setOnClickListener


<p>package com.thxy.activity;</p>import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity implements OnClickListener {

	private TextView textView;
	private Button button;
	private int count = 0;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		textView = (TextView) findViewById(R.id.textView);
		button = (Button) findViewById(R.id.button);
		button.setOnClickListener(this);
	}

	@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 void onClick(View v) {
		count++;
		textView.setText(count+"");
	}

}

*使用多选框的流程

     *在XML文件当中使用<CheckBox/>标签

           *设置id属性

     *在代码当中使用CheckBox的对象表示

           *使用findViewById()获取对象

     *常用OnClickListener与OnCheckedChangeListener监听器

package com.thxy.checkbox;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;

public class MainActivity extends Activity {

	private CheckBox eatBox;
	private CheckBox sleepBox;
	private CheckBox dotaBox;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		eatBox = (CheckBox) findViewById(R.id.eatId);
		sleepBox = (CheckBox) findViewById(R.id.sleepId);
		dotaBox = (CheckBox) findViewById(R.id.dotaId);
		
		CheckBoxListener listener = new CheckBoxListener();
		eatBox.setOnCheckedChangeListener(listener);
		sleepBox.setOnCheckedChangeListener(listener);
		dotaBox.setOnCheckedChangeListener(listener);
		
		/*
		OnBoxClickListener listener = new OnBoxClickListener();
		eatBox.setOnClickListener(listener);
		sleepBox.setOnClickListener(listener);
		dotaBox.setOnClickListener(listener);
		*/
	}

	//OnCheckedChangeListener的使用方法
	class CheckBoxListener implements OnCheckedChangeListener{

		@Override
		public void onCheckedChanged(CompoundButton buttonView,
				boolean isChecked) {
			if (buttonView.getId() == R.id.eatId) {
				System.out.println("eatBox");
			}else if (buttonView.getId() == R.id.sleepId) {
				System.out.println("sleepBox");
			}else if (buttonView.getId() == R.id.dotaId) {
				System.out.println("dotaBox");
			}
			if (isChecked) {
				System.out.println("checked");
			}else {
				System.out.println("unChecked");
			}
		}
		
	}
	//OnClickListener的使用方法
	/*
	class OnBoxClickListener implements OnClickListener {

		@Override
		public void onClick(View v) {
			CheckBox box = (CheckBox) v;
			if (box.getId() == R.id.eatId) {
				System.out.println("eat");
			}else if(box.getId() == R.id.sleepId) {
				System.out.println("sleep");
			}else if (box.getId() == R.id.dotaId) {
				System.out.println("dota");
			}
			if (box.isChecked()) {
				System.out.println("checked");
			} else {
				System.out.println("unChecked");
			}
				
		}
		
	}
	*/
	@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;
	}

}

*单选按钮Radio

       *在XML文件中使用<RadioButton/> & <RadioGroup/>

       *在代码中获取RadioButton & RadioGroup对象

       *常用OnClickListener与OnCheckedChangeListener监听器

RadioGroupListener l = new RadioGroupListener();
		radioGroup.setOnCheckedChangeListener(l);


class RadioGroupListener implements android.widget.RadioGroup.OnCheckedChangeListener{

		@Override
		public void onCheckedChanged(RadioGroup group, int checkedId) {
			if (checkedId == femaleButton.getId()) {
				System.out.println("男");
			}else if (checkedId == maleButton.getId()) {
				System.out.println("女");
			}
		}
	}



 *相对布局的相关属性

*使用layout_weight的要点

      *子控件并没有占满父控件的所有空间

      *layout_weight的值用于指定空闲空间的分配比例


RelativeLayout布局
android:layout_marginTop="25dip" //顶部距离
android:gravity="left" //空间布局位置
android:layout_marginLeft="15dip //距离左边距


// 相对于给定ID控件

android:layout_above 将该控件的底部置于给定ID的控件之上;

android:layout_below 将该控件的底部置于给定ID的控件之下;

android:layout_toLeftOf 将该控件的右边缘与给定ID的控件左边缘对齐;

android:layout_toRightOf 将该控件的左边缘与给定ID的控件右边缘对齐;



android:layout_alignBaseline 将该控件的baseline与给定ID的baseline对齐;

android:layout_alignTop 将该控件的顶部边缘与给定ID的顶部边缘对齐;

android:layout_alignBottom 将该控件的底部边缘与给定ID的底部边缘对齐;

android:layout_alignLeft 将该控件的左边缘与给定ID的左边缘对齐;

android:layout_alignRight 将该控件的右边缘与给定ID的右边缘对齐;

// 相对于父组件

android:layout_alignParentTop 如果为true,将该控件的顶部与其父控件的顶部对齐;

android:layout_alignParentBottom 如果为true,将该控件的底部与其父控件的底部对齐;

android:layout_alignParentLeft 如果为true,将该控件的左部与其父控件的左部对齐;

android:layout_alignParentRight 如果为true,将该控件的右部与其父控件的右部对齐;

// 居中

android:layout_centerHorizontal 如果为true,将该控件的置于水平居中;

android:layout_centerVertical 如果为true,将该控件的置于垂直居中;

android:layout_centerInParent 如果为true,将该控件的置于父控件的中央;

// 指定移动像素

//相对于父控件


android:layout_marginTop 上偏移的值;

android:layout_marginBottom 下偏移的值;

android:layout_marginLeft   左偏移的值;

android:layout_marginRight   右偏移的值;


*TimePicker时间控件

获取指定时间activity代码

package com.thxy.timepicker;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TimePicker;
import android.widget.TimePicker.OnTimeChangedListener;

public class MainActivity extends Activity {

	private TimePicker firstTimePicker;
	private Button button;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		firstTimePicker = (TimePicker) findViewById(R.id.firstTimePicker);
		button = (Button) findViewById(R.id.button);
		//该函数用于设置是否使用24小时制显示时间
		firstTimePicker.setIs24HourView(true);
		TimeListener listener = new TimeListener();
		firstTimePicker.setOnTimeChangedListener(listener);
		
		ButtonListener l = new ButtonListener();
		button.setOnClickListener(l);
	}
	
	class ButtonListener implements OnClickListener{

		@Override
		public void onClick(View v) {
			int hour = firstTimePicker.getCurrentHour();
			int minute = firstTimePicker.getCurrentMinute();
			System.out.println("h:"+hour+".m:"+minute);
		}
	}

	class TimeListener implements OnTimeChangedListener{

		/*
		 * view:该对象代表着TimePicker
		 * hourOfDay:用户所选择的小时
		 * minute:用户所选择的分钟
		 */
		@Override
		public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
			System.out.println("Hour:"+hourOfDay+",minute:"+minute);
			
		}
	}
	@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;
	}
}

*DatePicker的用法

获取指定日期的activity代码

package com.thxy.datepicker;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;

public class MainActivity extends Activity {

	private DatePicker datePicker;
	private Button button;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		datePicker = (DatePicker) findViewById(R.id.firstDatePicker);
		//设置DatePicker默认显示时间
		datePicker.updateDate(2016, 2, 8);
		button = (Button) findViewById(R.id.button);
		
		ButtonListener listener = new ButtonListener();
		button.setOnClickListener(listener);
	}

	class ButtonListener implements OnClickListener{

		@Override
		public void onClick(View v) {
			int y = datePicker.getYear();
			int m = datePicker.getMonth();
			int d = datePicker.getDayOfMonth();
			System.out.println("y:"+y+",m:"+m+",d:"+d);
			
		}	
	}
	@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;
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值