您的位置:首页 > 其它

Mars安卓第一季

2016-03-04 23:52 197 查看
*为控件绑定监听器

*获取代表控件的对象

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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: