2011-08-09 3 views
0

하나의 활동에 두 개의 버튼이 있습니다. onclick 이벤트가있는 하나의 버튼 & 다른 하나는 onclicklistener입니다. 내 응용 프로그램을 실행하려고하면 강제 종료 오류가 표시됩니다. 동일한 활동에서이 두 가지 사건을 사용할 수 있습니까?동일한 프로그램에서 onclick 및 onclicklistener를 사용하는 방법은 무엇입니까?

+0

두 개의 버튼이 동일한의 OnClick에 의해 처리 될 수있다(). 그렇지 않으면 코드를 보여줄 수 있습니다. –

+0

코드를 게시하십시오. –

답변

0

당신은 사용할 수 있습니다 ...

public class MyClass extends Activity implements OnClickListener 
{ 
protected void onCreate(Bundle savedInstanceState) 
{  
super.onCreate(savedInstanceState); 

    btn1. setOnClickListener(new OnClickListener() 
    {  
     public void onClick(View v) 
     { 
     //add action for btn1. 

     } 
    }); 

    btn2.setOnClickListener(this); 

} 

public void onClick(View v) 
{ 

if(v== (Button)findViewById(R.id.btn2_id) 
{ 

    //perform action for btn2. 

} 

} 

} 
2

OnClickListener를 모든 버튼에 다음과 같이 다음과 같이

btn1.setOnClickListener(this); 
btn2.setOnClickListener(this); 

는 다음의 onclick() 이벤트를 추가 :

@Override 
public void onClick(View v) { 
// TODO Auto-generated method stub 
if(v == btn1){ 
//Things to do 
} 
if(v == btn2){ 
    //Things to do  
    } 
} 
0

당신이 로그 캣에서 실제 오류를 보내 주시겠습니까.

또는 다음 코드는 도움이 될 수 있습니다.

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

    public class Test2Activity extends Activity implements OnClickListener{ 
    private Button btn1, btn2; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    btn1 = (Button)findViewById(R.id.button1); 
    btn1.setOnClickListener(this); 
    btn2 = (Button)findViewById(R.id.button2); 
    btn2.setOnClickListener(this); 


} 

@Override 
public void onClick(View v) { 
    switch (v.getId()) { 
    case R.id.button1: 
     System.out.println("Button 1 Press"); 
     break; 
    case R.id.button2: 
     System.out.println("Button 2 Press"); 
     break; 
    default: 
     break; 
    } 

} 

} 
0

당신은 두 가지 옵션이 있습니다

  1. (Uttam에 지정된대로) 하나 OnClickListener를 구현하고 구별하는 스위치 케이스를 추가하는 것입니다 다른 버튼 사이.

  2. 각 버튼에 대해 별도의 익명 OnClickListeners 만들기 :

    btn1.setOnClickListener(new OnclickListener() { 
    
        @Override 
        public void onClick(View v) { 
         // first button behavior 
        } 
    } 
    
    btn2.setOnClickListener(new OnclickListener() { 
    
        @Override 
        public void onClick(View v) { 
         // second button behavior 
        } 
    } 
    
관련 문제