TextView:显示文本框控件

常用属性:

android:id—控件的id

android:layout_width—控件的宽度

android:layout_height—控件的高度

android:text—文本内容

android:textSize—文本大小

android:textColor—文本颜色

android:background—控件背景

EditText:输入文本框

常用属性:

android:id—控件的id

android:layout_width—控件的宽度

android:layout_height—控件的高度

android:text—文本内容

android:textSize—文本大小

android:textColor—文本颜色

android:background—控件背景

android:hint—输入提示文本

android:inputType—输入文本类型

android:layout_width 和android:layout_height 的属性值:

wrap_content:包裹实际文本内容

match_parent:当前控件铺满父类容器(2.3api之后添加的一个属性值)

fill_parent:当前控件铺满父类容器(在2.3api之前的一个属性值)

android:textSize的属性值:

android:textSize=”28sp”(文字一般用sp为单位)

android:textColor的属性值:

android:textColor=”#000000”(用颜色的十六进制表示)

android:text 和 android:hint同时存在时,只显示text内容,不显示提示内容。

代码实例:

<TextView        android:id="@+id/name_textView"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="姓名:"        android:textSize="28sp"        android:textColor="#000000"        />    <EditText        android:id="@+id/name_editText"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_marginLeft="70dp"        android:hint="请输入姓名,如:张飞" >        <requestFocus /></EditText>

效果图如下:


ImageView:是显示图片的一个控件

常用属性:

android:src=”@drawable/ic_launcher”—ImageView的内容图像

android:background=”@drawble/ic_launcher”—ImageView背景图片

android:background=”#00ff00”—ImageView的RGB颜色

android:src 和 android:background设置控件图片,后者会被拉伸。

在布局上拖一个ImageView控件,如图所示,这里我们选工程带的图片。


如图:


代码如下:

<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"    android:orientation="vertical"    tools:context="com.example.imageviewtest.MainActivity"    tools:ignore="MergeRootFrame" >    <ImageView        android:id="@+id/imageView1"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:src="@drawable/ic_launcher"        android:background="#ccc" />    <ImageView        android:id="@+id/imageView2"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:background="@drawable/ic_launcher" />    <ImageView        android:id="@+id/imageView3"        android:layout_width="match_parent"        android:layout_height="20dp"        android:background="#0f0f0f" /></LinearLayout>

其中在LinearLayout布局中,android:orientation="vertical"设置垂直排列。

Button 和 ImageButton

Button:按钮

常用属性:

android:id=”@+id/button1”

android:layout_width=”match_parent”

android:layout_height=”wrap_content”

android:text=”Button”

ImageButton:图片按钮

常用属性:

android:id=”@+id/imageButton1”

android:layout_width=”match_parent”

android:layout_height=”wrap_content”

android:src=”@drawableabc_ab_share_pack_holo_light”

共有的特性:都可以作为一个按钮产生点击事件

不同点:

1.Button有text的属性,ImageButton没有

2.ImageButton有src属性,Button没有

产生明显的点击效果。

实例代码:

<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"    android:orientation="vertical"    tools:context="com.example.buttonandimagebutton.MainActivity"    tools:ignore="MergeRootFrame" >    <Button        android:id="@+id/button1"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="@string/button_name" />    <ImageButton        android:id="@+id/imageButton1"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:src="@drawable/ic_launcher" /></LinearLayout>

效果图:


可以在ImageButton控件中添加background属性,可以与src同时存在。

补充:这里Button控件的text属性,是在value/string.xml文件中声明的,这种方式是推荐使用的。

总结:

1.Button:可以设置文本内容一个按钮

2.ImageButton:不可以设置文本内容,background以及sre添加一个image,当前图片可以做一个有文本内容图片

onClick事件

1.Button和ImageButton都拥有一个onClick事件。

通过自身的.setOnClickListener(OnClickListener)方法添加点击事件。

2.所以的控件都有一个onClick的事件,不仅仅Button和ImageButton拥有。

3.通过点击事件的监听可以实现点击按钮之后要发生什么动作。

监听事件实现的三种写法

1.匿名内部类的实现。

a.初始化当前所需要控件,定义变量,如:

private Button loginButton;

并赋值:

loginButton =(Button)findViewById(R.id.button1);

这里findViewById(R.id.button1)的返回值是view对象,必须向下转型。

R.id.button1是在gen/R文件中生成的唯一的id号,我们通过android:id属性来指定。

b.设置Button的监听器。通过监听器实现我们点击Button要操作的事情。

loginButton.setOnClickListener(newOnClickListener() {

@Override

public void onClick(View arg0) {

//在当前onClick()方法中监听点击Button的动作,如:

System.out.println(“我的Button被点击了”);//在LogCat输出语句

}

});

代码如下:

private Button loginButton;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);loginButton = (Button)findViewById(R.id.button1);loginButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {//在当前onClick()方法中监听点击Button的动作,如:System.out.println("我的Button被点击了");//在LogCat输出语句}});}

效果图:

1.独立类的实现。

点击事件外部类的写法和作用:有多个按钮要实现同一个功能,可以在父类的onClick事件实现相同的这个功能,在自身onClick事件实现特有功能。

a.定义类:

class MyOnClickListener implements OnClickListener {

@Override

public voidonClick(View v) {

Log.i(“tag”, “父类的onClick事件”);

//v.setAlpha(0.5f);//设置按钮透明度

}

}

b.button1.setOnClickListener(newMyOnClickListener() {

@Override

public void onClick(View v) {

super.onClick(v);

//功能

Toast.makeText(MainActivity.this,“button1要执行的逻辑”,1).show();

}

});

button2.setOnClickListener(new MyOnClickListener() {

@Override

public void onClick(View v) {

super.onClick(v);

//功能

Toast.makeText(MainActivity.this,“button2要执行的逻辑”,1).show();

}

});

代码实现:

在默认布局文件中代码如下:

<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"    android:orientation="vertical"    tools:context="com.example.buttonoutclassonclicklistener.MainActivity"    tools:ignore="MergeRootFrame" >    <Button        android:id="@+id/button1"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="按钮1" />    <Button        android:id="@+id/button2"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="按钮2" /></LinearLayout>

在MainActivity.java中代码如下:

package com.example.buttonoutclassonclicklistener;import android.os.Bundle;import android.support.v4.app.Fragment;import android.support.v7.app.ActionBarActivity;import android.util.Log;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.widget.Button;import android.widget.Toast;//实现的外部类class MyOnClickListener implements OnClickListener {@Overridepublic void onClick(View v) {Log.i("tag", "父类的onClick事件");v.setAlpha(0.5f);//设置按钮透明度}}public class MainActivity extends ActionBarActivity {private Button button1;private Button button2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//代码1:button1 = (Button) findViewById(R.id.button1);button2 = (Button) findViewById(R.id.button2);button1.setOnClickListener(new MyOnClickListener() {@Overridepublic void onClick(View v) {super.onClick(v);//功能Toast.makeText(MainActivity.this, "button1要执行的逻辑",1).show();}});button2.setOnClickListener(new MyOnClickListener() {@Overridepublic void onClick(View v) {super.onClick(v);//功能Toast.makeText(MainActivity.this, "button2要执行的逻辑",1).show();}});if (savedInstanceState == null) {getSupportFragmentManager().beginTransaction().add(R.id.container, new PlaceholderFragment()).commit();}}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();if (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}/** * A placeholder fragment containing a simple view. */public static class PlaceholderFragment extends Fragment {public PlaceholderFragment() {}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {View rootView = inflater.inflate(R.layout.fragment_main, container,false);return rootView;}}}

效果图:

1.实现接口的方式实现。

button.setOnClickListener(this);

实现接口:

@Override

public void onClick(View v) {

Log.i(“tag”, “第三种方式实现”);

}

package com.example.button3;import android.app.Activity;import android.app.Fragment;import android.os.Bundle;import android.util.Log;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.widget.Button;public class MainActivity extends Activity implements OnClickListener {private Button button1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button1 = (Button) findViewById(R.id.button1);button1.setOnClickListener(this);if (savedInstanceState == null) {getFragmentManager().beginTransaction().add(R.id.container, new PlaceholderFragment()).commit();}}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();if (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}/** * A placeholder fragment containing a simple view. */public static class PlaceholderFragment extends Fragment {public PlaceholderFragment() {}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {View rootView = inflater.inflate(R.layout.fragment_main, container,false);return rootView;}}@Overridepublic void onClick(View arg0) {Log.i("tag", "第三种方式实现");}}

AutoCompleteTextView:动态匹配输入的内容,如百度搜索引擎的提示信息

独特属性:

android:completionThreshold=”2”—设置输入多少字符时自动匹配

示例代码:

<AutoCompleteTextView        android:id="@+id/autoCompleteTextView1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentLeft="true"        android:layout_alignParentTop="true"        android:layout_marginTop="36dp"        android:ems="10"        android:completionThreshold="3"        android:hint="请输入你要搜索的关键词" >        <requestFocus /></AutoCompleteTextView>

public class MainActivity extends Activity {private AutoCompleteTextView acTextView;//第三步:初始化数据源---这数据源去匹配文本框输入的内容private String[] res = {"beijing1", "beijing2", "beijing3", "shanghai1", "shanghai2"};@Overrideprotected 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);//第四步:将adpter与当前AutoCompleteTextView绑定acTextView.setAdapter(adapter);}

MultiAutoCompleteTextView控件:

功能:可支持选择多个值(在多次输入的情况下),分别用分隔符分开,并且在每个值选中的时候再次输入值时会自动去匹配,可用在发短信,发邮件时选择联系人这种类型当中。

独特属性:

android:completionThreshold=”2”– 设置输入多少字符时自动匹配

设置分隔符:

mtxt.setTokenizer(newMultiAutoCompleteTextView.CommaTokenizer());

【未完待续...】

更多相关文章

  1. android中的style部分属性值介绍
  2. android:ellipsize的用法以及跑马灯实现 marquee
  3. android Style属性介绍
  4. Android:EditText 多行显示及所有属性
  5. Android(安卓)layout属性大全
  6. Android(安卓)layout属性大全
  7. android inputtype属性
  8. Android开发_TextView跑马灯
  9. Android(安卓)textAppearance的属性设置及TextView属性详解

随机推荐

  1. 关于Android方法数量限制的问题
  2. Android(安卓)HLS协议相关记录及部分解析
  3. android apk 签名信息 相关
  4. android之动画(一)通过AnimationDrawable控
  5. Android(安卓)uevent
  6. Android(安卓)常用RGB值以及中英文名称
  7. Android中的Logcat方法查看内核的日志
  8. Android中如何取消或定制当点击GridView
  9. Activity的启动模式(android:launchMode)
  10. Android(安卓)TextView setMovementMetho