Android學習筆記(七)——常見控制項

來源:互聯網
上載者:User

標籤:

  //此系列博文是《第一行Android代碼》的學習筆記,如有錯漏,歡迎指正!

  Android 給我們提供了大量的 UI控制項,下面我們簡單試試幾種常用的控制項。

一、TextView

  在布局檔案中加入TextView元素:

1 <TextView android:text="This is TextView!"2         android:gravity="center"3         android:layout_width="match_parent"4         android:layout_height="wrap_content"5         android:textSize="34sp"6         android:textColor="#000000"/>

  代碼的意思顯而易見,id是當前控制項的唯一識別碼,text是所要顯示的常值內容,width和height可以控制控制項的寬和高,一般有三種可選值: match_parent、fill_parent 和 wrap_content,其中 match_parent 和fill_parent的意義相同。match_parent 表示讓當前控制項的大小和父布局的大小一樣。wrap_content 表示讓當前控制項的大小能夠剛好包含住裡面的內容,也就是由控制項內容決定當前控制項的大小。我們也可以對控制項的寬和高指定一個固定的大小,但是這樣做有時會在不同手機螢幕的適配方面出現問題。TextView的文本是預設左上方對齊的,但我們可以使用 android:gravity來指定文字的對齊, 可選值有 top、 bottom、 left、 right、 center等 , 可 以 用 “ | ” 來 同 時 指 定 多 個 值 , 這 裡 我 們 指 定 的 "center" , 效 果 等 同 於"center_vertical|center_horizontal",表示文字在垂直和水平方向都置中對齊。另外textSize用於指定字型大小,textColor用於指定字型顏色。此時的PreView介面是這樣的:

  

二、Button

  Button是程式用於和使用者進行互動的一個重要控制項,它可配置的屬性和 TextView 是差不多的:

1 <Button2     android:id="@+id/button"3     android:layout_width="match_parent"4     android:layout_height="wrap_content"5     android:text="Button" />

  在主活動中我們可以使用匿名類為button註冊一個監聽器,當然也可以使用實現介面的方式。

三、EditText

  EditText 是程式用於和使用者進行互動的另一個重要控制項,它允許使用者在控制項裡輸入和編輯內容,並可以在程式中對這些內容進行處理,應用情境普遍。我們在布局檔案中加入下列代碼:

1  <EditText2         android:id="@+id/edit_text"3         android:layout_width="match_parent"4         android:layout_height="wrap_content"5         android:hint="Type something here"6         android:textSize="24sp"7         android:maxLines="2"8     />

  其中的hint用於在輸入框裡顯示一些提示性的文字,然後一旦使用者輸入了任何內容,這些提示性的文字就會消失。而maxLines則是限定了 EditText的最大行數為兩行,這樣當輸入的內容超過兩行時,文本就會向上滾動,而 EditText 則不會再繼續展開。效果如下:

        

  輸入文本超過兩行時:

  

  自然,我們可以結合 EditText 與 Button 來完成一些功能,比如當想要通過點擊按鈕來擷取EditText中輸入的內容,可以加入下列代碼:

 1 public class MainActivity extends Activity implements OnClickListener { 2     private Button button; 3     private EditText editText; 4  5     @Override 6     protected void onCreate(Bundle savedInstanceState) { 7     super.onCreate(savedInstanceState); 8     setContentView(R.layout.activity_main); 9     button = (Button) findViewById(R.id.button);10 11     editText = (EditText) findViewById(R.id.edit_text);12     button.setOnClickListener(this);13     }14 15     @Override16     public void onClick(View v) {17         switch (v.getId()) {18         case R.id.button:19             String inputText = editText.getText().toString();20             Toast.makeText(MainActivity.this, inputText,Toast.LENGTH_SHORT).show();22             break;23         default:24             break;25         }26     }27 }

  此時編輯完代碼後,按下button,螢幕下方就會彈出所編輯好的常值內容。

四、ImageView

  ImageView是用於在介面上展示圖片的一個控制項,使用這個控制項之時,我們需要先把一張圖片放到 drawable檔案夾下(我放的圖片是pic.jpg),然後加入下列代碼:

1 <ImageView2     android:id="@+id/image_view"3     android:layout_width="wrap_content"4     android:layout_height="wrap_content"5     android:src="@drawable/pic"6 />

  其中src語句是對圖片資源的引用。由於圖片的寬和高都是未知的,所以將 ImageView的寬和高都設定為 wrap_content,這樣保證了不管圖片的尺寸是多少都可以完整地展示出來。現在運行程式後便可看到圖片展示在螢幕上。

五、ProgressBar

  ProgressBar用於在介面上顯示一個進度條, 表示我們的程式正在載入一些資料。

1 <ProgressBar2         android:id="@+id/progress_bar"3         android:layout_width="match_parent"4         android:layout_height="wrap_content"5         style="?android:attr/progressBarStyleHorizontal"6         android:max="100"7         /> 

   我們使用style將其指定成水平進度條,並通過 android:max 屬性給進度條設定一個最大值,然後我們便可以在代碼中動態地更改進度條的進度。在此之前,我們需要用到 Android控制項的可見屬性。 所有的Android控制項都具有這個屬性, 可以通過android:visibility進行指定,可選值有三種,visible、invisible 和 gone。visible 表示控制項是可見的,這個值是預設值。invisible 表示控制項不可見,但是它仍然佔據著原來的位置和大小。gone 則表示控制項不僅不可見,而且不再佔用任何螢幕空間。我們可以通過代碼來設定控制項的可見度,使用的是setVisibility()方法,可以傳入 View.VISIBLE、View.INVISIBLE 和 View.GONE三種值。現在我們修改MainActivity的代碼如下:

 1 public class MainActivity extends Activity implements View.OnClickListener { 2     private Button button; 3     private ProgressBar progressBar; 4     @Override 5     protected void onCreate(Bundle savedInstanceState) { 6         super.onCreate(savedInstanceState); 7         setContentView(R.layout.content_main); 8         button = (Button) findViewById(R.id.button); 9         progressBar = (ProgressBar) findViewById(R.id.progress_bar);10         button.setOnClickListener(this);11     }12     @Override13     public void onClick(View v) {14         switch (v.getId()) {15             case R.id.button:16                 int progress = progressBar.getProgress();17                 progress = progress + 25;18                 progressBar.setProgress(progress);19                 break;20             default:21                 break;22         }23     }24 }
View Code

  代碼中我們設定progressbar的最大值為100,每按一次按鈕其值增加25,圖為按了兩次按鈕的:

  

  

六、AlertDialog

  AlertDialog可以在當前的介面彈出一個對話方塊, 這個對話方塊是置頂於所有介面元素之上的,能夠屏蔽掉其他控制項的互動能力,因此一般 AlertDialog 都是用於提示一些非常重要的內容或者警告資訊。

  我們加入代碼如下:

 1 @Override 2     public void onClick(View v) { 3         switch (v.getId()) { 4             case R.id.button: 5                 AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this); 6                 dialog.setTitle("This is Dialog"); 7                 dialog.setMessage("Something important."); 8                 dialog.setCancelable(false); 9                 dialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {10                     @Override11                     public void onClick(DialogInterface dialog, int which) {12                     }13                 });14                 dialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {15                     @Override16                     public void onClick(DialogInterface dialog, int which) {17                     }18                 });19                 dialog.show();20                 break;21             default:22                 break;23         }24     }
View Code

   首先通過 AlertDialog.Builder 建立出一個 AlertDialog的執行個體,然後可以為這個對話方塊設定標題、內容、可否取消等屬性,接下來調用 setPositiveButton()方法為對話方塊設定確定按鈕的點擊事件,調用 setNegativeButton()方法設定取消按鈕的點擊事件,最後調用 show()方法將對話方塊顯示出來。

  運行效果如下:

  

  控制項的學習在此先告一段落,其他的有需要可以在網上搜一下。

 

  //End.

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.