2013-05-19 3 views
12

Android 개발을 처음 사용했습니다. 내 OnClickListener 메서드에서 새 Activity을 열려고합니다. 무엇을 써야하고 OnClickListener 방법은 어떻게 작동합니까?안드로이드 버튼 onClickListener

+0

의도 의도 = 새로운 의도 (this, NewActivit.class); 스타 액티비티 (의도); –

+0

pleae 여기에 질문을 올리기 전에 조사를 해보십시오. –

답변

31

이 작업은 인 텐트로 명명 된 안드로이드의 주요 빌딩 블록 중 하나와 당신의 액티비티 클래스에 속하는 방법 public void startActivity (Intent intent) 중 하나를 사용하여 수행 할 수 있습니다.

의도는 수행 할 작업의 추상 설명입니다. startActivity를 사용하여 Activity를 시작하고, 관심있는 BroadcastReceiver 구성 요소로 보내려면 broadcastIntent를, 백그라운드 서비스와 통신하려면 startService (Intent) 또는 bindService (Intent, ServiceConnection, int)와 함께 사용할 수 있습니다.

인 텐트는 다른 응용 프로그램의 코드간에 런타임 런타임 바인딩을 수행하는 기능을 제공합니다. 가장 중요한 용도는 활동을 시작하는 것입니다. 활동 간의 결합으로 생각할 수 있습니다. 기본적으로 수행 할 작업에 대한 추상적 인 설명을 포함하는 수동 데이터 구조입니다. http://developer.android.com/reference/android/content/Intent.html

public void startActivity (Intent intent) - - 새로운 활동을 시작하는 데 사용

은 공식 문서를 참조하십시오.

그래서 두 개의 작업 클래스가 있다고 가정 -

  1. PresentActivity -이 두 번째 활동을 이동하려는 현재 활동입니다.

  2. 다음 액티비티 - 이동하려는 다음 활동입니다.

그래서 텐트 마지막이 전체 코드

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); 
      } 
      }); 
    } 
} 

난 당신이 지금 이해할 수 있기를 바랍니다 당신이 어떤 문제에 직면하는 경우 다시 얻을 수있을 것입니다이

Intent(PresentActivity.this, NextActivity.class) 

같은 것 나에게 여기에만. 언제나 기꺼이 도와 드리겠습니다.

1

쉽게 :

발사 활동 (온 클릭 핸들러) 새로운 활동에 대한

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

:

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

과의 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

을 사용하거나 android : onClick = "myMethod" 버튼을 사용하여 새 레이아웃을 열 때 사용할 XML 코드를 입력 할 수 있습니다. 따라서 해당 버튼을 클릭하면 myMethod 기능이 자동으로 호출됩니다. 클래스의 myMethod 함수는 다음과 같습니다.

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

그리고 SecondActivity.class는 contentview에서 새 레이아웃을 설정합니다.

관련 문제