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入门基础之布局
新闻热点
疑难解答