您所在的位置 : IT客 » 程序開發 » Android

android入門筆記

eclipse相關
eclipse自動加載包快捷鍵: ctrl + shift + o
eclipse代碼提示快捷鍵:alt+/
eclipse複寫方法:類裏右鍵->source->Override/Implement Methods
eclipse裏只顯示System.out.printIn的方法:1.在Saved Filters裏點綠色加號 2.在彈出窗口中 (1).Filter Name隨便填  (2).by Log Tag填System.out (3).by Log Level選info  3.點OK

java語法相關
字符轉數值:Integer.parseInt(string);
數值轉字符:intVal+"";

添加一個Activity
1.在res/layout/下爲activity添加一個.xml
2.添加一個class並extends自Activity
3.複寫onCreate方法,並且調用方法setContentView(R.layout.main),main就是1創建的xml文件名
4.在AndroidManifest.xml文件中聲明該activity

改變啓動Activity(相當於傳說中的改變主程序窗口)
將AndroidManifest.xml文件中的<intent-filter >標籤移動到想要啓動的Activity下。注:如果activity不在同一個包下,需要將android:name寫全,一般的android:name=".activityname"即可,此時需要android:name="xx.xx.activityname"

刪除虛擬機中的程序
在剛開始學的時候不免會建很多工程,這樣虛擬機裏會有大量垃圾程序,刪除方法爲:
settings->Applications->Manage applications->然後點擊想要刪除的程序->uninstall

創建控件時注意
在.xml文件中創建窗口控件時需要注意,layout_width和layout_height兩個屬性必須指定,否則會出現The application has stopped unexpectedly.please try again.的錯誤信息。

兩個activity間跳轉並傳值

//fromActivity:
Intent intent=new Intent();
intent.putExtra("intVal", Integer.parseInt(intVal));
intent.setClass(fromActivity.this, toActivity.class);
mainActivity.this.startActivity(intent);

//toActivity
Intent intent=getIntent();
int intVal = intent.getIntExtra("v1", 0);

添加Button的click事件

btn = (Button)findViewById(R.id.btn1);

listen1 = new OnClickListener(){

        public void onClick(View v){
               //事件處理
        }
};
btn.setOnClickListener(listen1);

添加點手機上的menu按鈕時出現的菜單
1.重寫onCreateOptionsMenu方法
public boolean onCreateOptionsMenu(Menu menu) {
   menu.add(0,1,1,R.string.exit);
   return super.onCreateOptionsMenu(menu);
}
2.重寫onOptionsItemSelected方法

public boolean onOptionsItemSelected(MenuItem item) {
   //item.getItemId()爲上面menu.add的第二個參數
   //finish()爲結束應用程序
   if(item.getItemId() == 1)finish();
   return super.onOptionsItemSelected(item);
}

Activity生命週期
onCreate():當Activity第一次被創建時候調用。
onStart():當Activity能被看到的時候調用。
onResume():當Activity獲得用戶焦點的時候調用。
onPause():當前Activity啓動另一個Activity之前調用。
          理解:當用戶在操作某個Activity時來電話,此時會啓動來電Activity,onPause這時就會保存當前Act的數據,用於來電Act結束後恢復。
onStop():當Activity不可見時被調用。(沒有被其它窗口完全遮擋時不調用)
onRestart():由不可見變爲可見時調用。
onDestroy():1.當代碼裏明確調用Activity的finish方法時調用。2.當手機資源不夠用時,需要關閉些Activity,並且當前Activity也在被關閉之列。

什麼時task?
task是一個存放了很多Activity的棧(後進先出)

設置Activity爲彈出的模態窗口
<activity android:label="@string/popup" android:name=".popUpActivity" android:theme="@android:style/Theme.Dialog" />

佈局及屬性
gravity:控件位置(上、右、下、左、中等等)。
singleLine="true":內容顯示在一行
TableLayout中的<TableRow>相當web裏的tr,不同的是沒有td,<TableRow>裏的每一個元素都相當於一個td(列)。
android:stretchColumns:元素不夠寬時拉申哪一列(下標從0開始)
android:shrinkColumns:元素太寬時收縮哪一列(下標從0開始)

RelativeLayout
相對位置佈局,有點類似web中的div+css佈局。
兩個控件之間的左右上下對齊
android:layout_above='@id/xxx'  將該控件的底部置於給定id控件之上
android:layout_below='@id/xxx'  將該控件的頂部置於給定id控件之下
android:layout_toLeftOf='@id/xxx'  將該控件的右邊緣與給定id控件的左邊緣對齊
android:layout_toRightOf='@id/xxx'  將該控件的左邊緣與給定id控件的右邊緣對齊

android:layout_alignBottom='@id/xxx'  將該控件的底部與給定id控件的底部對齊
android:layout_alignLeft='@id/xxx'  將該控件的左邊緣與給定id控件的左邊緣對齊
android:layout_alignRight='@id/xxx'  將該控件的右邊緣與給定id控件的右邊緣對齊
android:layout_alignTop='@id/xxx'  將該控件的頂部與給定id控件的頂部對齊

android:layout_alignParentBottom="true" 將該控件底部與父控件的底部對齊
android:layout_alignParentLeft="true" 將該控件左邊與父控件的左邊對齊
android:layout_alignParentRight="true" 將該控件右邊與父控件的右左邊對齊
android:layout_alignParentTop="true" 將該控件頂部與父控件的頂部對齊

android:layout_centerHorizontal="true" 將該控件置於水平方向的中央
android:layout_centerVertical="true" 將該控件置於垂直方向的中央
android:layout_centerInParent="true" 將該控件置於父控件的水平中央和垂直中央

FrameLayout
無法指定期內部元素的位置,每個元素只會顯示在layout的左上角,如果有一個以上的元素,那麼後添加的元素會覆蓋遮擋住前一個元素。

RadioButton用法

    <RadioGroup android:id="@+id/radiogroup1" android:layout_width="fill_parent"  android:layout_height="fill_parent" android:orientation="vertical">

        <RadioButton android:text="@string/radio1" android:id="@+id/man_radio" />

        <RadioButton android:text="@string/radio2" android:id="@+id/woman_radio" />

    </RadioGroup>
每一組RadioButton外都需要包一層RadioGroup,因爲RadioButton的change事件是要綁定在RadioGroup控件上的。

this.radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {

             public void onCheckedChanged(RadioGroup group, int checkedId) {

                      if(manRadio.getId() == checkedId){
                                 //彈出一個類似MessageBox的提示框
                                Toast.makeText(relative_layoutActivity.this, "男", Toast.LENGTH_LONG).show();

                      }else if(womanRadio.getId() == checkedId){

                                Toast.makeText(relative_layoutActivity.this, "女", Toast.LENGTH_LONG).show();

                      }

             }
});

CheckBox添加onChange事件

this.checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

           public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

                     Toast.makeText(relative_layoutActivity.this, "CheckBox Change", Toast.LENGTH_LONG).show();

           }
});

頂一下
(0)
踩一下
(0)

發表評論:

昵稱: *
內容:
驗證碼:
rss· 投稿· 加入收藏· 手機版