第七课GUI练练表面功夫
Android类当中定义View类作为可视化控件的基类。主要提供了控件绘制和事件处理的方法。而可视化控件是指重新实现了View的绘制和事件处理方法并最终与用户交互的对象,如文本显示、按钮等。
ViewGroup类是继承自View类,最大的特点是可以子控件。详见下图:
1 创建页面组件
在res/layout/main.xml文件中增加页面组件。可用IDE当中的Graphical layout模式进行可视化操作,再进行对mail.xml文件的直接修改。
最终代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" />
<TextView android:text="文本框" android:id="@+id/TextView01" android:layout_width="fill_parent" android:layout_height="wrap_content"></TextView>
<EditText android:text="" android:id="@+id/EditText01" android:layout_width="fill_parent" android:layout_height="wrap_content"></EditText>
<TextView android:text="复选框:" android:id="@+id/TextView02" android:layout_width="fill_parent" android:layout_height="wrap_content"></TextView>
<CheckBox android:text="option1" android:id="@+id/CheckBox01" android:layout_width="fill_parent" android:layout_height="wrap_content"></CheckBox>
<CheckBox android:text="option2" android:id="@+id/CheckBox02" android:layout_width="fill_parent" android:layout_height="wrap_content"></CheckBox>
<TextView android:text="时间:" android:id="@+id/TextView03" android:layout_width="fill_parent" android:layout_height="wrap_content"></TextView>
<DigitalClock android:text="@+id/DigitalClock01" android:id="@+id/DigitalClock01" android:layout_width="fill_parent" android:layout_height="wrap_content"></DigitalClock>
<DatePicker android:id="@+id/DatePicker01" android:layout_width="fill_parent" android:layout_height="wrap_content"></DatePicker>
<Button android:text="提交" android:id="@+id/Button01" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
</LinearLayout>
2 activity类处理GUI交互
通过findViewById(int id)进行对GUI控件的对象获取。
代码如下:
package dongxing.shane;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.DatePicker;
import android.widget.DigitalClock;
import android.widget.EditText;
import android.widget.TextView;
public class PageDemo extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button=(Button)findViewById(R.id.Button01);//得到资源按钮控件
button.setOnClickListener(yourName);//使用yourName方法监听单击按钮
}
private OnClickListener yourName= new OnClickListener()//创建单击监听方法
{
@Override //重写onClick方法
public void onClick(View v) {
EditText nameObj=(EditText)findViewById(R.id.EditText01);
TextView resultObj=(TextView)findViewById(R.id.TextView01);
CheckBox checkBox1=(CheckBox)findViewById(R.id.CheckBox01);
CheckBox checkBox2=(CheckBox)findViewById(R.id.CheckBox02);
DigitalClock digitalClock =(DigitalClock)findViewById(R.id.DigitalClock01);
DatePicker datePicker=(DatePicker)findViewById(R.id.DatePicker01);
Log.i("EditText---------------- ",String.valueOf(nameObj.getText()));
Log.i("TextView---------------- ",String.valueOf(resultObj.getText()));
Log.i("checkBox1---------------- ",String.valueOf(checkBox1.isChecked()));
Log.i("checkBox2---------------- ",String.valueOf(checkBox2.isChecked()));
Log.i("DigitalClock------------ ",String.valueOf(digitalClock.getText()));
Log.i("DatePicker-getYear------ ",String.valueOf(datePicker.getYear()));
Log.i("DatePicker-getMonth----- ",String.valueOf(datePicker.getMonth()+1));
Log.i("DatePicker-getDayOfMonth--- ",String.valueOf(datePicker.getDayOfMonth()));
}
};
}