2013-05-19 32 views
12

Tôi mới sử dụng Android Development. Tôi đang cố gắng mở Activity mới trong phương thức OnClickListener của mình. Tôi nên viết gì và phương thức OnClickListener hoạt động như thế nào?Nút Android onClickListener

+0

Intent intent = new Intent (this, NewActivit.class); bắt đầu (ý định); –

+0

pleae làm một số nghiên cứu trước khi đặt câu hỏi của bạn ở đây –

Trả lời

31

Tác vụ này có thể được thực hiện bằng cách sử dụng một trong những khối xây dựng chính của Android có tên là Intents và Một trong những phương pháp public void startActivity (Intent intent) thuộc về lớp Hoạt động của bạn.

Mục đích là mô tả trừu tượng về một thao tác sẽ được thực hiện. Nó có thể được sử dụng với startActivity để khởi chạy Activity, broadcastIntent để gửi nó tới bất kỳ thành phần BroadcastReceiver quan tâm nào và startService (Intent) hoặc bindService (Intent, ServiceConnection, int) để giao tiếp với một dịch vụ nền.

Mục đích cung cấp cơ sở để thực hiện ràng buộc thời gian trễ giữa mã trong các ứng dụng khác nhau. Sử dụng quan trọng nhất của nó là trong sự ra mắt của các hoạt động, nơi nó có thể được coi là keo giữa các hoạt động. Về cơ bản nó là một cấu trúc dữ liệu thụ động giữ một mô tả trừu tượng về một hành động được thực hiện.

Tham khảo các tài liệu chính thức - http://developer.android.com/reference/android/content/Intent.html

public void startActivity (Intent intent) - Dùng để khởi động một hoạt động mới.

Vì vậy, giả sử bạn có hai Hoạt động lớp -

  1. PresentActivity - Đây là hoạt động hiện tại của bạn mà từ đó bạn muốn đi hoạt động thứ hai.

  2. NextActivity - Đây là hoạt động tiếp theo mà bạn muốn di chuyển.

Vì vậy, tiếp cận mục đích sẽ là như thế này

Intent(PresentActivity.this, NextActivity.class) 

Cuối cùng này sẽ là mã hoàn chỉnh

public class PresentActivity extends Activity { 
    protected void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 

    setContentView(R.layout.content_layout_id); 

    final Button button = (Button) findViewById(R.id.button_id); 
    button.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       // Perform action on click 
       Intent activityChangeIntent = new Intent(PresentActivity.this, NextActivity.class); 

       // currentContext.startActivity(activityChangeIntent); 

       PresentActivity.this.startActivity(activityChangeIntent); 
      } 
      }); 
    } 
} 

Tôi hy vọng bạn có thể hiểu ngay bây giờ và Nếu bạn đang phải đối mặt với bất kỳ vấn đề trở lại với tôi ở đây. Luôn sẵn lòng trợ giúp.

1

dễ dàng:

hoạt động ra mắt (onclick handler)

Intent myIntent = new Intent(CurrentActivity.this, NextActivity.class); 
myIntent.putExtra("key", value); //Optional parameters 
CurrentActivity.this.startActivity(myIntent); 

trên hoạt động mới:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
Intent intent = getIntent(); 
String value = intent.getStringExtra("key"); //if it's a string you stored. 

và thêm hoạt động mới của bạn trong AndroidManifest.xml:

<activity android:label="@string/app_name" android:name="NextActivity"/> 
10
//create a variable that contain your button 
Button button = (Button) findViewById(R.id.button); 

    button.setOnClickListener(new OnClickListener(){ 
     @Override 
     //On click function 
     public void onClick(View view) { 
      //Create the intent to start another activity 
      Intent intent = new Intent(view.getContext(), AnotherActivity.class); 
      startActivity(intent); 
     } 
    }); 
3

sử dụng OnClicklistener hoặc bạn có thể sử dụng android: onClick = "myMethod" trong mã xml của buttonn mà từ đó bạn sẽ mở bố cục mới. Vì vậy, khi nút đó được nhấp, chức năng myMethod của bạn sẽ được gọi tự động. Hàm myMethod của bạn trong lớp trông giống như thế này.

public void myMethod(View v) { 
Intent intent=new Intent(context,SecondActivty.class); 
startActivity(intent); 
} 

Và trong đó SecondActivity.class đặt bố cục mới trong chế độ xem nội dung.

Các vấn đề liên quan