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入门基础之布局