編輯:關於Android編程
本文向你展示了在你的Android應用程序中創建一個簡單的Button或ImageButton控件的步驟。首先,你會學到如何向你的布局文件中添加按鈕控件。然後你會學習如何用兩種方法處理用戶對按鈕的點擊。最後,我們討論Android中按鈕控件一些其它的可用特性。
我們從創建Android程序開始。你平常一樣完成你的Android應用。一旦你已經創建項目並可以運行,決定你希望向什麼樣的屏幕添加Button控件。可能你就簡單地創建了一個使用默認活動和布局(main.xml)的新Android項目。這個教程將使用這種情況作例子。一旦你創建了你的Android項目,你就可以繼續學習這篇文章了。
Android SDK包含兩個在你的布局中可以使用的簡單按鈕控件:Button(android.widget.Button)和ImageButton(android.widget.ImageButton)。這些控件的功能很相似因此我們幾乎可以一並地的討論它們。這兩個控件不相同的地方基本上就是外觀上;Button控件有一個文本標簽,而ImageButton使用一個可繪制的圖像資源來代替。Button使用的一個很好的例子應該是一個簡單的帶有“保存”文本標簽的按鈕。ImageButton使用的一個很好的例子可能是音樂播放器按鈕的集合,包括播放P, 暫停 以及停止。
這裡是一個示例屏幕,包括一個Button控件(左邊)和一個ImageButton控件(右邊)。
Android SDK還包含了一些其它更不為人知的從上面兩個基本按鈕類型繼承來的類按鈕控件,包括CompoundButton,RadioButton,ToggleButton,和ZoomButton。要了解這些控件的更多信息,查看Android文檔。你也可以通過繼承合適的類並實現控件行為來創建自定義控件。
Button控件通常都被作為活動的布局資源文件一部分。比如,要添加一個Button控件到與你程序相關的main.xml布局資源中,你必須編輯布局文件。你可使用Eclipse的布局資源設計器,或者直接編輯XML。像按鈕這樣的控件也可以通過程序動態地創建並在運行時添加到你的屏幕上。簡單地通過它的類來創建合適的控件並將它添加到你的活動中的布局。
要添加一個Button控件到布局資源文件,打開/res/layout/main.xml布局文件,它是你的Android項目的一部分。點擊你想要為其添加Button控件的LinearLayout (或者父級布局控件,比如RelativeLayout或FrameLayout)。在Eclipse中,你可以點擊Outline標簽中的父級布局,然後使用綠色加號按鈕添加一個新的控件。選擇你要添加的控件——在這個例子中是Button控件。
要配置Button控件的外觀,選中該控件並通過在屬性標簽中改變屬性值來調節控件的屬性。下面是一些你會想知道的特別的屬性:
下面是用來生成前段中展示的屏幕的布局資源文件的內容。它包括三個控件。
RelativeLayout組織屏幕上的控件,也就是兩個子控件,一個Button和一個ImageButton,如下:
現在,如果你運行你的程序,按鈕控件顯示出來了,但是如果你點擊它們不會有任何反應。現在應該來處理控件上的點擊事件了。有好幾種方法可以做到。
讓我們從簡單的方法開始吧。Button和ImageButton控件有一個叫onClick的屬性(在屬性面板裡叫“On Click”)。你可以通過這個屬性設置要處理點擊事件的方法名,然後在你的活動中實現這個方法。比如,你可以將你的Button控件屬性設置為onMyButtonClick。在XML中,這個屬性將如下所示:
android:onClick="onMyButtonClick"
然後,在你的活動類,你需要實現這個方法。它應該是一個帶有單個參數(一個View對象)的公有的void方法。例如,下面的按鈕點擊實現了當Button控件被點擊時在屏幕生成一個消息框:
public void onMyButtonClick(View view) { Toast.makeText(this, "Button clicked!", Toast.LENGTH_SHORT).show(); }
當你點擊這個Button控件,onMyButtonClick()方法被調用,在屏幕上顯示一個消息。你的Button按鈕能做什麼就取決於你自己了。下圖顯示了當點擊Button按鈕時消息是如何展示的:
實現點擊事件處理的另一種方法是使用setOnClickListener()方法向你的按鈕控件注冊一個新的View.OnClickListener。這種方式代替了將你布局資源中的按鈕控件的On Click屬性設置為一個你必須實現的方法的方式,你可以在你的活動中動態地做這些事情。雖然這可能看起來有很多額外的代碼要寫,但至少理解它是非常重要的,因為在一些控件上點擊不是需要處理的唯一事件。我們將要向你展示的程序應用了其它的事件,比如長按。
要使用這個方法,你必須更新你的活動類以注冊控件點擊事件。通常情況下通過你的活動的onCreate()方法來實現。使用findViewById()方法找到控件然後使用它的setOnClickListener()方法來定義當它被點擊時的行為。你將需要自己去實現界面的onClick()方法。比如,下面的代碼(位於活動的onCreate()方法中)為我們的ImageButton控件注冊了一個點擊處理器。
ImageButton myImageButton = (ImageButton) findViewById(R.id.ImageButton01); myImageButton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { Toast.makeText(BasicButtonActivity.this, "ImageButton clicked!", Toast.LENGTH_SHORT).show(); } });
同樣地,你可以使用這個技術來實現長按點擊處理,通過使用控件的setOnLongClickListener()方法。
按鈕控件在Android程序中經常會用到。在這個快速教程中你學習了如何創建兩種不同的Android按鈕控件:Button和ImageButton。你也學習了實現這些類型按鈕控件的按鈕點擊事件處理的幾種方法。(注:原文作者:RockUX–WEB 點此查看英文。)
http://mobile.51cto.com/design-254382.htm
經過數日的努力,新聞客戶端終於完成了,想用博客記錄一下開發過程中遇到的問題和解決方法,以免以後遇到同樣的問題罵自己記性差.項目的前期准備做項目前應該仔細的規劃一下功能需求
在 Android 3.0(API level 11) 之後,Google 為 Android添加了屬性動畫(Property Animation),該動畫系統是一個強大
在做android UI布局時,用了LinearLayout嵌套,發現效果並不如我預料一般查了下資料,說是要設置layout_weight屬性資料說得不是很清
情境:布局文件中有ScrollView,ScrollView中有個EditView,布局底部有一個控件(見下面布局代碼),程序一啟動EditView就獲取焦點,彈出軟鍵盤