Làm thế nào để sử dụng Textview như là một Button?

Thảo luận trong 'Android cơ bản' bắt đầu bởi HaiHack, 1/2/13.

  1. thanhlong90.it

    thanhlong90.it Admin Support Staff Member

    Bạn cần có 2 cái ảnh nền như 1 nút button (nguyên và ảnh khi bấm đè xuống).
    Sau đó bạn thay hình nền cho background, khi click xuống thì thay background, khi thả ra thì thay background.
    Chúc bạn thành công!
    HaiHack thích bài này.
  2. HaiHack

    HaiHack Member

    Ý mình là thay vì bấm vào nút thì mình bấm vào chữ ý để nó mở ra 1 chức năng nào đó ý, đã là chữ thì đâu cần đến background làm gì hả bạn
    Bạn cho mình đoạn code ví dụ đc không
  3. thanhlong90.it

    thanhlong90.it Admin Support Staff Member

    - Thứ nhất, TextView cũng có background bạn nhé ~~. Bạn có thể thiết lập trực tiếp từ file xml hoặc đặt trực tiếp trong code.
    - Thứ 2, cái này thì dễ hơn nữa @@! Cứ tưởng bạn biến cái TextView thành Button! Bạn chỉ việc thiết lập 1 lắng nghe từ TextView bằng phương thức setOnClickListener(), sau đây là code:

    1. Trước tiên bạn tạo 1 ứng dụng android mới:

    2.Sửa code lại trong res/layout/activity_main.xml như sau
    PHP:
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        
    xmlns:tools="http://schemas.android.com/tools"
        
    android:layout_width="match_parent"
        
    android:layout_height="match_parent"
        
    tools:context=".MainActivity" >
     
        <
    TextView
            android
    :id="@+id/tv1"
            
    android:layout_width="wrap_content"
            
    android:layout_height="wrap_content"
            
    android:layout_centerHorizontal="true"
            
    android:layout_centerVertical="true"
            
    android:text="@string/hello_world" />
     
    </
    RelativeLayout>
    3. Sửa code lại trong src/...package.../MainActivity
    PHP:
    package com.example.click;
     
    import android.os.Bundle;
    import android.app.Activity;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.TextView;
    import android.widget.Toast;
     
    public class 
    MainActivity extends Activity {
        
    //Định nghĩa lại hàm khởi tạo của lớp Activity
        //Vì MainActivity kế thừa mọi phương thức và thuộc tính thằng Activity
        
    @Override
        
    protected void onCreate(Bundle savedInstanceState) {
            
    //Trước tiên thực hiện việc tạo lại các đối tượng của Activity
            
    super.onCreate(savedInstanceState);
            
    //Thiết lập giao diện xml mình vừa thiết kế cho class MainActivity
            
    setContentView(R.layout.activity_main);
            
    //Lấy đối tượng từ XML để xử lý code (cụ thể đây là thằng TextView có id là "tv1")
            
    TextView myTextView = (TextViewfindViewById(R.id.tv1);
            
    //Tạo một cái lắng nghe từ thằng TextView này
            
    myTextView.setOnClickListener(new OnClickListener() {
                
    //Thiết kế lại hàm lắng nghe việc Click từ thằng TextView
                
    @Override
                
    public void onClick(View v) {
                    
    //Làm việc gì đó sẽ code trong này
                    //Ví dụ tạo 1 "Toast" là 1 đối tượng thông báo hiển thị trên màn hình android
                    
    Toast.makeText(MainActivity.this"A đã lắng nghe cái click được rồi!"Toast.LENGTH_SHORT).show();
                }
            });
        }
    }
    4. Nâng cao: Trong trường hợp có nhiều cái cần thiết lập việc setOnClickListener(), ví dụ như có 3 cái textview, 4 cái button ...
    PHP:
    package com.example.click;
     
    import android.os.Bundle;
    import android.app.Activity;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.TextView;
    import android.widget.Toast;
     
    public class 
    MainActivity extends Activity implements OnClickListener{
        
    //myTextView ở đây là biến toàn cục
        
    private TextView myTextView;
     
        
    //Định nghĩa lại hàm khởi tạo của lớp Activity
        //Vì MainActivity kế thừa mọi phương thức và thuộc tính thằng Activity
        
    @Override
        
    protected void onCreate(Bundle savedInstanceState) {
            
    //Trước tiên thực hiện việc tạo lại các đối tượng của Activity
            
    super.onCreate(savedInstanceState);
            
    //Thiết lập giao diện xml mình vừa thiết kế cho class MainActivity
            
    setContentView(R.layout.activity_main);
            
    //Lấy đối tượng từ XML để xử lý code (cụ thể đây là thằng TextView có id là "tv1")
            
    myTextView = (TextViewfindViewById(R.id.tv1);
     
        }   
       
        
    //Định nghĩa lại việc thực thi từ implements OnClickListener
        
    @Override
        
    public void onClick(View v) {
            switch (
    v.getId()) {
            
    //Trường hợp tv1 có click 1 phát thì ...
            
    case R.id.tv1:
                
    Toast.makeText(MainActivity.this"A đã lắng nghe cái click được rồi!"Toast.LENGTH_SHORT).show();
                break;
            
    //Tương tự tường hợp tv2, tv3, button 1, button 2 ....
            /*case R.id.tv2:
           
                break;           
            case R.id.tv3:
           
                break;    */   
            
    }
        }
    }
    ThanhLong90.it chúc bạn thành công ^^!
  4. HaiHack

    HaiHack Member

    cám ơn bạn, bài hướng dẫn rất chi tiết
  5. passconnection

    passconnection New Member

    Mỗi Form Widget đều có set Listener , bạn nên tìm hiểu thêm về set... Listener cho widget , bạn có thể thiết lập lại thuộc tính của các widget khi bắt sự kiện Listener tùy theo yêu cầu ứng dụng của bạn.

Chia sẻ trang này