Android 開發學習隨筆

來源:互聯網
上載者:User

標籤:nbsp   換行   之間   水平   點擊   layout   state   resources   tokenizer   

(一)、TextView

1、使用TextView顯示文本資訊

2、在resources標籤下定義常量的標籤

3、通過findViewById()方法擷取控制項對象,此方法返回的是一個View對象,需要強制類型轉換

4、擷取某個控制項對象之前,一定要引用相應的布局

5、動態擷取資源常量值需要擷取Resources對象,Resources對象通過getResources()方法獲得

 

(二)、監聽按鈕點擊事件

3種註冊監聽方式比較

  • 匿名內部類:需要擷取控制項對象,使用變數不方便;適用於單個事件
  • 實現介面:需要擷取控制項對象,使用變數方便;適用於多個事件
  • 設定onClick屬性:無需擷取控制項對象,使用變數方便;不便於維護

 

(三)布局

作用:不可見的視圖容器主鍵,負責管理其子控制項在螢幕中顯示的位置和大小

常見的幾種類型:

線性布局:Linear Layout    子控制項按照橫排向或縱向排列

 

排列方向屬性:

水平布局(預設)  android:orientation=“horizontal”  (不會自動換行)

垂直布局: android:orientation=“vertical”

重力屬性  android:gravity  

Center  水平垂直置中   center_horizontal 水平置中   center_ vertical垂直置中

Top&bottom 頂部&底部   left&right 靠左&靠右

 

 

相對布局:RelativeLayout    子控制項靈活的出現在某個特殊位置上,方便描述控制項與控制項的相對位置關係

 

幀布局:FrameLayout   子控制項之間是層疊覆蓋的關係,多應用在滑動頁與片段出現的場合

格子布局:GridLayout   子控制項被排列在一個表格之中

 

 

一、控制項

Button——可以設定常值內容的一個按鈕

ImageButton——不可以設定常值內容,可以通過Background以及src添加一個imag,當前圖片可以做一個常值內容圖片。

ImageButton是用於在按鈕上顯示圖片的。所以是沒有android:text這個屬性的。並且如果在布局檔案中寫上android:text="我是一個按鈕",在android 4.4環境中是不會看到任何效果的

(二)、監聽按鈕點擊事件

3種註冊監聽方式比較

  • 匿名內部類:需要擷取控制項對象,使用變數不方便;適用於單個事件
  • 實現介面:需要擷取控制項對象,使用變數方便;適用於多個事件
  • 設定onClick屬性:無需擷取控制項對象,使用變數方便;不便於維護

 

 

1)、AutoComplpteTextView 功能:動態匹配輸入的內容

獨特屬性:android:completionThreshold="2"  設定輸入多少字元時自動匹配

例子:

 

 

 

 

2)、MulitAutoComplpteTextView 功能:可支援選擇多個值,分別用分隔字元分開,可用於簡訊和郵件選擇連絡人時。

獨特屬性:android:completionThreshold="2"  設定輸入多少字元時自動匹配

例子:

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.demo.MainActivity">

<AutoCompleteTextView
android:completionThreshold="2"
android:id="@+id/autoCompleteTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="請輸入關鍵字"/>

<MultiAutoCompleteTextView
android:completionThreshold="1"
android:id="@+id/autoCompleteTextView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="請輸入你的收件者"/>
</LinearLayout>

package com.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 AutoCompleteTextView acTextView;
private MultiAutoCompleteTextView macTextView;

private String[] res = {"南寧","南寧2","柳州","桂林","北海"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/**
* 1、初始化控制項
* 2、建立一個適配器,
* 3、初始化資料來源,這資料來源要和文字框輸入內容進行匹配
* 4、將Adapter與AutoCompleteTextView綁定
*/
acTextView=(AutoCompleteTextView) findViewById(R.id.autoCompleteTextView);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,res);
acTextView.setAdapter(adapter);


/**
* MultiAutoCompleteTextView
* 1、初始化控制項
* 2、建立一個適配器,
* 3、初始化資料來源,這資料來源要和文字框輸入內容進行匹配
* 4、將Adapter與AutoCompleteTextView綁定
* 5、設定分隔字元
*/
macTextView = (MultiAutoCompleteTextView) findViewById(R.id.autoCompleteTextView2);
macTextView.setAdapter(adapter);
//設定以逗號為結束分隔字元
macTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
}
}


 

 

Android 開發學習隨筆

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.