一.基础控件学习
1.TextView控件
(1)设置控件基本信息设置;
<TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/Title"
        android:textSize="25sp"//设置大小
        android:textColor="@color/tvcolor"//改变字体颜色/>
*注:改变颜色有三种方法:
(1)在xml文件中用android:textColor="@color/tvcolor"改;
这种方法只能将所有字的颜色都改为同一种颜色;
(2)在MainActivity中使用如下语句改:(这种方法可以选择性该某一段的颜色)
package com.example.kjtest;import android.os.Bundle。。。;//引用的相关包
public class MainActivity extends Activity {
    private Button btn1,btn2;//声明button控件
    private TextView tv;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tv=(TextView)findViewById(R.id.tv);
        tv.setText(Html.fromHtml("这是改变<font color=blue>局部字段颜色</font>的方法!"));
}  }
(3)同时设置不同字段的颜色
在MainActivity中使用如下语句改:
package com.example.kjtest;import android.os.Bundle。。。;//引用的相关包
public class MainActivity extends Activity {
    private Button btn1,btn2;//声明button控件
    private TextView tv;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tv=(TextView)findViewById(R.id.tv);
       String str="这是同时改变不同字段颜色的方法!";
       SpannableStringBuilder style=new  SpannableStringBuilder(str);
       style.setSpan(new ForegroundColorSpan(Color.RED), 0, 4,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE );
       style.setSpan(new ForegroundColorSpan(Color.GREEN), 4, 8,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE );
       style.setSpan(new ForegroundColorSpan(Color.YELLOW), 8, 12,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE );
       style.setSpan(new ForegroundColorSpan(Color.CYAN), 12, 16,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE );
      tv.setText(style);
       /*  btn1=(Button)findViewById(R.id.btn1);//查找到button1的id;
        btn2=(Button)findViewById(R.id.btn2);//查找到button2的id;
        btn1.setOnClickListener(clicklistener);//监听btn1;
        btn2.setOnClickListener(clicklistener);//监听btn2*/
    }  } 
(2)设置超链接
      android:autoLink="web"//注:引号内可写:none,web,phone,email,map,all
分别表示不连接,连接网址,电话,邮箱,图以及上述全部链接;
(3)设置跑马灯的效果
     android:focusable="true" //空间是否能获得焦点   
android:ellipsize="marquee"//文字过长时该控件如何显示“start”省略显示在开头,“end”省略显示在结尾,“middle”省略显示在中间,“marquee”以跑马灯的效果显示;
      android:singleLine="true"//设置文字段为单行
     android:marqueeRepeatLimit="marquee_forever"//设置跑动次数,marquee_forever表示永远跑动
     android:focusableInTouchMode="true"//在触摸模式下是否获得焦点
2.EditText控件
(1)去除焦点
建俩个edittext第一个的宽高都设为0dp;
(2)设置基本属性
 <EditText
   android:id="@+id/btn2"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:maxLength="10"//设置最大输入字符数
android:singleLine="false"//设置是否多行输入,与android:maxLength不可以连用
 android:imeOptions="number"//限制输入的信息类型,number
 android:hint="请在此输入内容"//设置提示信息
 android:drawableLeft="@drawable/hua"//在edittext中添加图片(图片拷贝到drawable文件夹下),可选择位置;
 android:background="@drawable/shape"//设置圆角,在drawable文件夹下新建一个xml文件命名为shape(shape文件内容见备注:)

/>
备注:shape.xml
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">//将形状设为矩形
 <solid android:color="#0000FF"/>//设置填充色
    <corners android:radius="7sp"/>//矩形四角的半径
  </shape>
3.Button控件
(2)设置控件基本信息设置;
      <Button
         android:id="@+id/btn"
        android:text="@string/btn"//注:btn是已经在string.xml中写过的;
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
        </Button>
(2)添加事件:
方法一:(推荐使用)
在MainActivity.java代码如下:package com.example.kjtest;import android.os.Bundle。。。;//引用的相关包
public class MainActivity extends Activity {
    private Button btn;//声明button控件
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn=(Button)findViewById(R.id.btn);//查找到button的id;
        btn.setOnClickListener(new OnClickListener(){//设置监听事件以及实现
         public void onClick(View v)
         {Toast.makeText(MainActivity.this,"你点击了Button!",Toast.LENGTH_LONG).show();}});
    }  
}
方法二:推荐当有多个button时使用
在MainActivity.java代码如下:package com.example.kjtest;import android.os.Bundle。。。;//引用的相关包
public class MainActivity extends Activity {
    private Button btn1,btn2;//声明button控件
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn1=(Button)findViewById(R.id.btn1);//查找到button1的id;
        btn2=(Button)findViewById(R.id.btn2);//查找到button2的id;
        btn1.setOnClickListener(clicklistener);//监听btn1;
        btn2.setOnClickListener(clicklistener);//监听btn2
    }  
    private OnClickListener clicklistener=new OnClickListener()
    {public void onClick(View v) {
// TODO Auto-generated method stub
Button btn=(Button)v;//强制转换
switch(btn.getId())
{case R.id.btn1:
Toast.makeText(MainActivity.this,"你点击了Button1!",Toast.LENGTH_LONG).show();
break;
case R.id.btn2:
Toast.makeText(MainActivity.this,"你点击了Button2!",Toast.LENGTH_LONG).show();
break; }} };
}
4.radiobutton控件(单选框按钮)
(1)布局形式写法:
 <RadioGroup
        android:id="@+id/rad_xb"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        >
        <RadioButton
         android:id="@+id/rad_boy"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="男生"
            />
         <RadioButton
             android:id="@+id/rad_girl"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="女生"
            />
        </RadioGroup>
(2)触发事件监听
package com.example.kjtest;import android.os.Bundle。。。;//引用的相关包
public class MainActivity extends Activity {
    private Button btn1,btn2;//声明button控件
    private TextView tv;
    private RadioGroup rad_xb;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        rad_xb=(RadioGroup)findViewById(R.id.rad_xb);
        rad_xb.setOnCheckedChangeListener(new OnCheckedChangeListener()
        {public void onCheckedChanged(RadioGroup group,int checkedId)
         {if(checkedId==R.id.rad_boy)
         {Toast.makeText(MainActivity.this,"你选择了男生!",Toast.LENGTH_LONG).show();}
         else if(checkedId==R.id.rad_girl)
         {Toast.makeText(MainActivity.this,"你选择了女生!",Toast.LENGTH_LONG).show();}} });}}
(3)变换选择点到信息后面
 android:button="@null"//控制选择点的属性
  android:drawableRight="@android :drawable/btn_radio"
以上代码添加到RadioButton属性里
注:android:drawableRight="@android :drawable/btn_(在此处按alt+?获得提示可将圆形选择点改为星形或其他)"


5.checkbox控件(复选框)
(1).布局形式:
<CheckBox
        android:id="@+id/cke"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="东方"
       />
   <CheckBox
        android:id="@+id/ckw"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="西方"
       />
   <CheckBox
        android:id="@+id/ckn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="北方"
       />
   <CheckBox
        android:id="@+id/cks"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="南方"/>
(2)事件监听:
public class MainActivity extends Activity {
  private CheckBox cke,ckw,ckn,cks;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
      cke=(CheckBox)findViewById(R.id.cke);//查找到button的id;
      ckw=(CheckBox)findViewById(R.id.ckw);
      ckn=(CheckBox)findViewById(R.id.ckn);
      cks=(CheckBox)findViewById(R.id.cks);
      cke.setOnCheckedChangeListener(listener);
      ckw.setOnCheckedChangeListener(listener);
      ckn.setOnCheckedChangeListener(listener);
      cks.setOnCheckedChangeListener(listener);}  
    Private OnCheckedChangeListener listener=new OnCheckedChangeListener()
{public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
if(buttonView.getId()==R.id.cke)
{if(isChecked)
{Toast.makeText(MainActivity.this,"东方!",Toast.LENGTH_LONG).show();}}
else if(buttonView.getId()==R.id.ckw)
{if(isChecked)
{Toast.makeText(MainActivity.this,"西方!",Toast.LENGTH_LONG).show();}}
else if(buttonView.getId()==R.id.ckn)
{if(isChecked)
{Toast.makeText(MainActivity.this,"北方!",Toast.LENGTH_LONG).show();}}
else if(buttonView.getId()==R.id.cks)
{if(isChecked)
{Toast.makeText(MainActivity.this,"南方!",Toast.LENGTH_LONG).show();}}}};
}
6.划横线分割屏幕
 <View
       android:layout_width="match_parent"
        android:layout_height="1dp"
        android:background="#0000FF"
        />
7.DataPickerDialog(日期控件)
(1)基本布局
<TextView
      android:id="@+id/datadisplay"
      android:layout_width="wrap_content"
    android:layout_height="wrap_content"
     />
    <Button
        android:id="@+id/changeb"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="修改时间" 
        />
  <DatePicker
      android:id="@+id/datapick"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content" />
(2)事件触发
public class MainActivity extends Activity {
  private DatePicker datePicker;
  private Button mpickdate;
  private TextView mdatedisplay;
  private int myear,mmonth,mday;
  static final int DATE_DIALOG_ID=0;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mdatedisplay=(TextView)findViewById(R.id.datadisplay);
        mpickdate=(Button)findViewById(R.id.changeb);
        mpickdate.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
showDialog(DATE_DIALOG_ID); }});
        final Calendar c=Calendar.getInstance();
        myear=c.get(Calendar.YEAR);
        mmonth=c.get(Calendar.MONTH);
        mday=c.get(Calendar.DAY_OF_MONTH);
        updateDisplay();
        datePicker=(DatePicker)findViewById(R.id.datapick);
        datePicker.init( myear, mmonth, mday,new OnDateChangedListener()
        {
        public void onDateChanged(DatePicker View, int year, int monthofyear,int dayofmonth) { Toast.makeText(MainActivity.this,year+"-"+monthofyear+"-"+dayofmonth,Toast.LENGTH_LONG).show(); } });  }  
    protected Dialog onCreateDialog(int id)
    {switch(id)
     {case DATE_DIALOG_ID:
     return new DatePickerDialog(this,mDateSetListener,myear,mmonth,mday);}
     return null; }
    private DatePickerDialog.OnDateSetListener mDateSetListener=new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear,int dayOfMonth) {
myear=year;
mmonth=monthOfYear;
mday=dayOfMonth;
updateDisplay();}};
private void updateDisplay()
{ mdatedisplay.setText(new StringBuilder().append("时间:").append(myear).append("-").append(mmonth).append("-").append(mday)) }}
8.TimePickerDialog(时间控件)
和DatePickerDialog类似