[Tự học lập trình Android ] Bài 9: Sử dụng TextView, EditText và Button trong Android

Sử dụng TextView, EditText và Button trong Android
- TextView, EditText, Button là 3 control cơ bản nhất của Android. Trong các ví dụ trước bạn đã được làm quen với 3 control này. Trang các ví dụ này chúng ta sẽ cũng cố lại các kiến thức đã học và bổ sung thêm các thuộc tính mới.

1) TextView

- Chỉ cho phép hiển thị thông tin mà không cho phép người dùng chỉnh sửa thì nên sử dụng control này.
- TextView giống như JLabel bên Java, và như Label bên C#
- Một số thuộc tính của TextView mà chúng ta thường xuyên sử dụng nhất:
    Hình 1

- Ta nên thiết lập id cho control để quản lý.
- layout_width, layout_height nên thiết lập cho Textview
- Để thay đổi màu nền dùng background, thay đổi màu chữ dùng textColor, …
- Dựa vào Id ta sẽ lấy được control theo đúng Id này, xem code bên dưới để biết cách lấy control theo Id:
TextView txt1= (TextView) findViewById(R.id.textView1);
- Mọi control đều kế thừa từ View, và hàm findViewById cũng trả về 1 View theo đúng Id truyền vào, đó là lý do ta ép kiểu về cho đúng với TextView (cách làm nhanh: ngay dòng lệnh này nhấn tổ hợp phím Ctrl +1 là nó sẽ tự ép kiểu nhanh cho bạn)
- Để hiển thị thông tin lên control TextView ta dùng lệnh dưới đây:
txt1.setText(“ Hello world! ”);
- Đẩy lấy thông tin bên trong control TextView ta dùng lệnh dưới đây:
String msg=txt1.getText().toString();

2) EditText
- Control này kế thừa từ TextView và cho phép chỉnh sửa dữ liệu (dĩ nhiên bạn có thể không cho chỉnh sửa dữ liệu bằng coding hay trong xml)
- Để sử dụng EditText rất đơn giản, bạn chỉ việc kéo thả control này vào giao diện và tiến hành thiết lập một số thuộc tính, hoặc viết code trong file layout:
Hình 2

- Như hình bên trên thì bạn chỉ cần kéo loại EditText mà bạn cần (vùng số 1) rồi thả vào giao diện (vùng số 2)
- Một số thuộc tính của EditText:

Hình 3

- Tương tự như TextView bạn cần thiết lập Id, các layout_width, layout_height
- Thuộc tính hint : để hiển thị thông tin gợi ý trong vùng nhập dữ liệu khi bạn chưa nhập bất kỳ dữ liệu nào vào, chỉ cần có dữ liệu là phần hint sẽ tự động mất đi.
- textSize để thiết lập kích cỡ font chữ cho EditText
- Trong inputType bạn thấy Tôi kết hợp nhiều giá trị lại với nhau bằng cách dùng toán tử “ | ”, tức là EditText này sẽ có đầy đủ các đặc tính ở bên vế phải mà ta truyền vào, ví dụ:
+ textAutoCorrect : Tự động sửa đúng chính tả, giả sử bạn nhập “teh” thì nó sẽ tự động sửa thành “the”
+ …

- Ta cũng có thể dùng cửa sổ Properties để thiết lập thuộc tính cho dễ dàng hơn (click chuột vào EditText muốn đổi thuộc tính):
Hình 4

- Màn hình trên cho phép ta thay đổi thuộc tính của control một cách dễ dàng.
- Tương tự như TextView, ta cũng phải lấy được control thông qua Id, thao tác với dữ liệu bên trong EditText:
+ Lấy control theo Id:
EditText txtbox=(EditText) findViewById(R.id.editText1);
+ Thiết lập giá trị cho EditText
txtBox.setText(“nhập bất cứ cái gì vào đây xem sao”)
+ Lấy dữ liệu bên trong EditText:
String msg=txtBox.getText().toString()

3) Button
- Dùng để thiết lập sự kiện khi người dùng chọn lựa.
- Cũng kế thừa từ TextView
- Có 2 sự kiện mà người sử dụng thường xuyên thao tác:

Hình 5


Ví dụ: Xây dựng ứng dụng tính cộng trừ nhân chia, giao diện như bên dưới (nhấn nút nào thì thực hiện phép toán cho nút đó):

Hình 6

- Bạn xem Layout để dễ thiết kế:

Hình 7

- Coding mẫu:

import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;


public class MainActivity extends Activity {
  Button btncong,btntru,btnnhan,btnchia;
  EditText editsoa,editsob;
  TextView txtkq;
  OnClickListener myclick=new OnClickListener() {
  @Override

  public void onClick(View arg0) {
   switch(arg0.getId())
   {
       case R.id.btncong:
          String sa=editsoa.getText()+"";
          String sb=editsob.getText().toString();
          int a=Integer.parseInt(sa);
          int b=Integer.parseInt(sb);
          txtkq.setText(a+ "+" +b + "= " +(a+b));
          break;
       case R.id.btntru:

          String sa=editsoa.getText()+"";
          String sb=editsob.getText().toString();
          int a=Integer.parseInt(sa);
          int b=Integer.parseInt(sb);
          txtkq.setText(a+"-"+b + "="+(a-b));

          break;

    case R.id.btnnhan:
          String sa=editsoa.getText()+"";
          String sb=editsob.getText().toString();
          int a=Integer.parseInt(sa);
          int b=Integer.parseInt(sb);
          txtkq.setText(a+"*"+b + "="+(a*b));           

          break;

    case R.id.btnchia:
         String sa=editsoa.getText()+"";
          String sb=editsob.getText().toString();
          int a=Integer.parseInt(sa);
          int b=Integer.parseInt(sb);
          txtkq.setText(a+"*"+b + "="+(a*b)); 

          break;
    }
  }
};

@Override

protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);
   btncong=(Button) findViewById(R.id.btncong);
   btntru=(Button) findViewById(R.id.btntru);
   btnnhan=(Button) findViewById(R.id.btnnhan);
   btnchia=(Button) findViewById(R.id.btnchia);
   editsoa=(EditText) findViewById(R.id.editsoa);
   editsob=(EditText) findViewById(R.id.editsob);
   txtkq=(TextView) findViewById(R.id.txtketqua);
   btncong.setOnClickListener(myclick);
   btntru.setOnClickListener(myclick);
   btnnhan.setOnClickListener(myclick);
   btnchia.setOnClickListener(myclick);
  }
}


 Tham khảo: duythanhcse
-----------------------------------------

0 nhận xét:

Cảm ơn bạn đã quan tâm tới bài viết này!