Android入门基础之控件

来源:互联网 发布:江歌事件知乎 编辑:程序博客网 时间:2024/04/27 06:13
  • TextView:显示文本框控件

  • EditText:输入文本框
    TextView与EditText共有常用属性:
    android:id——控件的id
    android:layout_width——控件的宽度
    android:layout_height——控件的高度
    android:text——文本内容
    android:textSize——文本大小
    android:textColor——文本颜色
    android:background——控件背景
    EditText有TextView没有的属性:
    android:hint——输入提示文本
    android:inputType——输入文本类型
    属性值:
    wrap_content:包裹实际文本内容
    martch_parent: 当前控件铺满父类容器——2.3api之后添加的一个属性值
    fill_parent:当前控件铺满父类容器——2.3api之前添加的一个属性值

  • ImageView:显示图片的一个控件
    属性:android:src=”@drawable/img_name”——ImageView的内容图像
    android:background=”@drawable/img_name”——ImageView背景图片
    android:background=”#000”——ImageView的RGB颜色

  • Button按钮与ImageButton图片按钮
    1、共有特点:都可以作为一个按钮产生点击事件;
    2、不同点:Button有text属性,ImageButton没有;ImageButton有src属性,Button没有
    3、产生明显的点击效果
    【注意】存放当前应用程序所用的字符串等数据,放在values下的string.xml下,如

<string name="button_name">登录</string>//string.xml中代码android:text="@string/button_name"//访问对应string.xml中内容
  • Button和ImageButton的监听事件

    onClick事件
    1、Button和ImageButton都拥有一个onClick事件,通过自身的.setOnClickListener(OnClickListener)方法添加点击事件;
    2、所有控件都有一个onclick的事件,不仅仅Button和ImageButton拥有;
    3、通过点击事件的监听可以实现点击按钮之后要发生什么动作。
    监听事件实现的几种写法:
    1、匿名内部类的实现;

package com.aop.demo;import android.app.Activity; public class MainActivity extends Activity{    private Button loginButton;    @Override    protected void onCreate(Bundle saveInstanceState){        super.onCreate(saveInstanceState);        setContentView(R.layout.activity_main);        loginButton=(Button)findViewById(R.id.button1);//初始化findViewById返回的是一个View的对象        //设置Button的监听器,通过监听器实现我们点击Button要操作的事情        /*1、通过匿名内部类实现*/        loginButton.setOnclickListener(new OnclickListener(){            @Override            public void onClick(View arg0){                System.out.println("Button被点击了");//在当前方法中监听点击Button的动作            }        });    }}

2、独立类的实现;

//独立类实现public class MainActivity extends Activity implements OnclickListener{    private ImageButton imgBt;    @Override    protected void onCreate(Bundle saveInstanceState){        super.onCreate(saveInstanceState);        setContentView(R.layout.activity_main);        loginButton.setOnclickListener(listener);    }    OnclickListener listener=new OnclickListener(){        @Override        public void onClick(View v){                log.i("tag","第二种方式实现");//打印日志到控制台        }    };}
//点击事件**外部类**的写法和作用loginButton.setOnclickListener(new MyOnclickListener(){    @Override    public void onClick(View v){        super.onClick(v);//调用父类的onClick        Toast.makeText(MainActivity.this,"loginButton要执行的逻辑",1).show();    }});//OnclickListener是一个接口,多个可以实现同样功能class MyOnclickListener implements OnclickListener{    @Override    public void onClick(View v){        v.setAlpha(0.5f);//改变透明度    }}

3、实现接口的方式来实现。

package com.aop.demo;import android.app.Activity; public class MainActivity extends Activity implements OnclickListener{    private ImageButton imgBt;    @Override    protected void onCreate(Bundle saveInstanceState){        super.onCreate(saveInstanceState);        setContentView(R.layout.activity_main);        imgBt=(ImageButton)findViewById(R.id.imageButton1);        /*通过实现一个接口事件实现*/        imgBt.setOnclickListener(this);    }    @Override    public void onClick(View v){        log.i("tag","第三种方式实现");//打印日志到控制台    }}
  • AutoCompleteTextView与MultiAutoCompleteTextView控件

1)AutoCompleteTextView控件
功能:动态匹配输入的内容,如百度搜索引擎当输入文本时可以根据内容显示匹配的热门信息;
独特属性:android:completion Threshold=”2”——设置输入多少字符时自动匹配
2)MultiAutoCompleteTextView控件
功能:可支持选择多个值(在多次输入的情况下),分别用分隔符分开,并且在每个值选中的时候再次输入值时会自动去匹配,可用在发短信,发邮件时选择联系人这种类型当中;
独特属性:android:completion Threshold=”2”——设置输入多少字符时自动匹配;
设置分隔符
mtxt.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/container"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="com.exe.demo.MainActivity"    tools:ignore="MergeRootFrame"    android:orientation="vertical    >    <AutoCompleteTextView        android:completionThreshold="3"        android:id="@+id/autoCompleteTextView1"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:hint="请输入你要搜索的关键词" >    </AutoCompleteTextView>    <MultiAutoCompleteTextView        android:id="@+id/multiAutoCompleteTextView1"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:hint="请输入你的收件人" >    </MultiAutoCompleteTextView></LinearLayout>
package com.exe.demo;import android.app.Activity;import android.os.Bundle;import android.widget.ArrayAdapter;import android.widget.AutoCompleteTextView;import android.widget.MultiAutoCompleteTextView;public class MainActivity extends Activity {    //初始化数据源——数据源去匹配文本框中输入的内容    private String[] res={"beijing1","beijing2","beijing3","shanghai1","shanghai2"};    private AutoCompleteTextView acTextView;    private MultiAutoCompleteTextView macTextView;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //初始化控件         acTextView=(AutoCompleteTextView)findViewById(R.id.autoCompleteTextView1);        //需要一个适配器        ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,res);        //将adapter与当前AutoCompleteTextView绑定        acTextView.setAdapter(adapter);        macTextView=(MultiAutoCompleteTextView)findViewById(R.id.multiAutoCompleteTextView1);        macTextView.setAdapter(adapter);        //设置以逗号为分隔符        macTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());    }}
  • ToggleButton控件
    ToggleButton控件的两种状态:
    选中和未选中状态,并且需要为不同的状态设置不同的显示文本;
    ToggleButton属性:
    android:checked=”true”,默认false
    android:textOff=”关”
    android:textOff=”开”

  • CheckBox复选框
    两种状态,选中(true),未选中(false):android:checked=”true”默认false

<CheckBox        android:id="@+id/checkBox1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="篮球" />
public class MainActivity extends ActionBarActivity {    private CheckBox checkBox;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        checkBox=(CheckBox)findViewById(R.id.checkBox1);//初始化        checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener(){            public void onCheckedChanged(CompoundButton buttonView,boolean isChecked){                Log.i("tag", isChecked+"");                if(isChecked){                    String text = checkBox.getText().toString();                    Log.i("tag",text);                }            }        });    }}
  • RadioButton和RadioGroup
    1、RadioGroup:RadioButton的一个集合,提供多选一机制
    属性:android:orientation=”vertical”——垂直排列
    android:orientation=”horizontal”——水平排列
 <RadioGroup        android:id="@+id/radioGroup1"        android:layout_width="wrap_content"        android:layout_height="wrap_content" >        <RadioButton            android:id="@+id/radio0"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:checked="true"            android:text="男" />        <RadioButton            android:id="@+id/radio1"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="女" />    </RadioGroup>
public class MainActivity extends ActionBarActivity implements OnCheckedChangeListener{    private RadioGroup rg;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        rg=(RadioGroup)findViewById(R.id.radioGroup1);//初始化        rg.setOnCheckedChangeListener(this);//监听器    }    @Override    public void onCheckedChanged(RadioGroup group, int checkedId) {        // TODO Auto-generated method stub        switch(checkedId){        case R.id.radio0:            Log.i("tag","你当前是一个男孩");            break;        case R.id.radio1:            Log.i("tag","你当前是一个女孩");            break;        default:            break;        }    }}

到这里Android入门基础之控件就讲完了,下次我们一起来看Android入门基础之布局

0 0
原创粉丝点击