1. 程式人生 > >android學習知識點

android學習知識點

Android的佈局的學習-----
1、Android的api的學習:
1)、api guide----api指南。
2)、Training-----例子的訓練。
3)、Reference----Android中的主要的api,主要的類。
4)、Google Services-----谷歌提供的服務
一、Linearlayout
Android中設計佈局設計的原理-----佈局的設計是不能巢狀太多,一般不超過三層,不然效能會下降。

macth—parent------------->匹配父容器
warp-parent-------------->內容包裹

2、Linearlayout的屬性的學習:

1)、gravity:----對齊的方式,相對於包裝器。表示內容位於包裝器的位置。
2)、layout_gravity:--------對齊的方式,相對父容器。表示子元素位於父元素的位置。
3)、weith:-----設定比重。
   match-parent:中的wieth的值越大,它所佔的區域就越小。
   warp-parent:中的weit的值越大,它所佔的區域就越大。

android的控制元件的學習-----------------------------------------

Android的文字的自動的提示的功能。------使用的是AutoCompleteTextView控制元件。

1、在xml中的程式碼:
 1)、<AutoCompleteTextView 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/textView" />

 2)、String.xml中的程式碼
   <resources>
    <string name="app_name">LinearlayoutStudy</string>
    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>
    <string-array name="citys">
        <item>東方市</item>
        <item>三亞市</item>
        <item>海口市</item>
        <item>儋州市</item>
        <item>樂東市</item>
    </string-array>
   </resources>

2、在activity的程式碼:
public class MainActivity extends Activity {
    private AutoCompleteTextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
textView=(AutoCompleteTextView) findViewById(R.id.textView);


                //這裡的介面卡是不一定只用這一種介面卡,也可以用其他的介面卡。
//如:SimpleAdapter、BaseAdapter。自定義的介面卡。
/*
使用資料來源一
      ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_dropdown_item_1line, COUNTRIES);
textView.setAdapter(adapter);//將介面卡中的內容放到AutoCompleteTextView中。
*/
//使用資料來源二
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,
 android.R.layout.simple_list_item_1, getdata());
                textView.setAdapter(adapter);
}

//這裡的資料來源以後可以從資料庫中去取,或中一些檔案中取,也可以從網路中去取


       //資料來源一
private static final String[] COUNTRIES = new String[] {
        "Belgium", "France", "Italy", "Germany", "Spain"
        ,"abc","ab","fjx","hh","kk","oo","qq","tt"
};
//資料來源二
       private String[] getdata(){
    data=getResources().getStringArray(R.array.citys);
return data;
        }
}

1、AutoCompleteTextView屬性:是用來設定提示的內容是在輸入多少個
   詞以後才出現的。如AutoCompleteTextView="2"那麼從輸入第二個
   詞時才會出現提示的內容,如果AutoCompleteTextView="1",那麼輸
   入一個詞時就有了提示的內容出現,當然也都肯能沒有提示的內容,
   因為如果提示的資料來源裡面沒有這個資料的話,就不會有提示。

2、介面卡:Adapter
   介面卡的作用:---->介面卡這個物件是位於AdapterView和資料來源之間的一個橋樑。
                 資料來源---》可以來自:資料、資料庫、網路。
   介面卡的種類很多:----》為了適應不同的資料的型別。
   介面卡是資料與檢視之間的橋樑。

3、使用不同的控制元件---->根據顯示資料的控制元件的不同,選擇不同的介面卡。


 陣列的介面卡-----ArrayAdapter<T>。他是繼承一個BaseAdapter。它適配的資料的型別都是一樣的。


android的選單的學習-----------------------------------------


memu選單的介紹:
定義選單的有兩種方式----1、xml,2、java程式碼。
xml方式-----高版本用的。
java程式碼方式-----低版本用的。


如何建立一個menu的xml:---
1、一個menu下面可以有多個item或group。
2、在res/menu的目錄下,建立一個xml,它的根節點是menu
   item:選單項。
   group:選單的分組。


如:
 <?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item 
        android:id="@+id/one"//選單的id
        android:title="第一"//選單的標題
        android:icon=""//選單的圖示
        android:numericShortcut=""//選單的數字快捷鍵
        android:showAsAction=""//選單是否總是顯示 
        />
</menu>


選單的定義是很簡單的,主要我們要學的是如何去處理選單的點選的事件的處理。
如何在選單中加入響應的事件----
// 處理選單的選擇的事件。--在acivity中重寫onOptionsItemSelected()方法,如下:
   @Override
   public boolean onOptionsItemSelected(MenuItem item) {
      int id = item.getItemId();
switch (id) {
case R.id.one:
 toast("第一個被點選");
break;
case R.id.two:
 toast("第二個被點選");
break;
case R.id.three:
 toast("第三個被點選");
break;
case R.id.four:
 toast("第四個被點選");
break;
}
return super.onOptionsItemSelected(item);
   }
選單僅僅只是跟當前的activity有關係。


android學習之內容提供者-------------------------------------------------、


ContextProvider:內容提供者。-----對外提供一個數據訪問的介面的規則。
1、什麼是Content Provider 內容提供者----
   底層封裝的是資料庫的操作,操作資料,A應用中將本地的資料庫的資料,分享給B的應用,必須要使
   用內容提供者,內容提供者是提供資料的資料來源,給客戶端訪問。
   如:網站,百度文庫。提供的內容是供我們的客戶端去訪問的
2、當我們想要去訪問內容提供者提供的資料,那麼就要用到內容的解析者(ContentResolver)。
   具體如何訪問---下面講解。
3、內容提供者提供的資料可以在不同的工程之間進行資料的訪問。
4、如果你不想將自己工程的資料共享給其他的工程去使用的話,那麼建議使用SQLiteDatabase。也就
   就是你的資料的儲存,就需要用的是SQLite的資料庫進行儲存。
5、內容提供者提供了一套對外的介面訪問規則:
   query查詢 ----對應一個uri
   insert插入----對應一個uri
   update更新----對應一個uri
   delete刪除----對應一個uri


6、解析uri----用的類是UriMatcher類來解析
   解析---是為了是解析出,是增、刪、改、查中的那個
   當要匹配uri的時候該類就呼叫---match()方法,與UriMatcher中的add的方法匹配,看有沒有匹配。


7、android資料儲存之遊標介面卡-----------
   1)、遊標介面卡是一個抽象類。
   2)、資料的來源---來自遊標,主要與ListView結合使用的。
   3)、這裡資料庫返回的遊標是給ListView使用的。
   4)、資料庫的資料來源與介面卡使用時----容易使應用產生ANR.----因此就要用到LoaderManager類了。


8、android資料儲存之LoaderManager---------


   1)、該loder有非同步的Loader。
   2)、LoaderManager是用在Activity或Fragment中,我們可能需要載入多個Loader。
   3)、loader只能對資料進行查詢的操作。
   4)、takeContentChanged()方法判斷內容是否已經改變了,
       如果已經改變---就呼叫forceLoad()方法通知呼叫者。
   5)、lManager.getLoader(1001).onContentChanged();//呼叫的時候是當內容發生改變的時候呼叫的
   。這個方法必須在ui的主執行緒中呼叫的,用來通知ui的更新。
   6)、使用觀察者模式進行載入資料。
   7)、使用非同步的Loader載入資料。
   8)、獲取Loader的物件:---Context.getLoaderManager();
   9)、初始化----LoaderManager.initLoader(id,args,callBack);


9、android的檔案儲存與內容提供者結合LoaderManager


10、使用ContentProvider去訪問通訊錄:-----
   1)、手機當中常見的內容提供者有哪些:
      ①、日曆。
      ②、通訊錄----可以修改、訪問、刪除、新增、查詢。
      新增操作:
       values.put("表中的欄位",欄位的值);
       ContentResolver.insert(uri,values);//執行插入的語句


android中SQLite資料庫的使用--------------------------------------------------------
1、需要寫一個類DBHelper繼承SQLiteOpenHelper類
   在這個類中完成SQLite的資料庫的建立與資料表的建立。
2、在使用的時候----
   DBHelper helper=new DBHelper(Context);
   SQLiteDatabase database=helper.getWriteredDatabase();//獲取資料庫的物件
    
3、定義一個DBManager類,用於資料庫的管理----管理資料庫的增刪該查。
4、定義在dao層中對資料庫的操作進行封裝。