2013-03-11 42 views
0

我有一個應用程序具有不同的組件(單選按鈕,複選框,按鈕vs)。並且我動態地創建了所有這些組件,但現在有一個問題;Android RadioButton和按鈕之一ClickEvent

我不能創建事件給所有他們created.I需要一個點擊事件的建議他們所有。

原諒我我的英語不好,但提前謝謝你。 請幫我

+0

對不起,我不明白你的問題。你想具體做什麼? – faceman 2013-03-11 15:24:17

+1

你想要一個連接到所有組件的單一'OnClickListener'?只需創建一個「View.OnClickListener」的子類並將其添加到所有組件。 – CaseyB 2013-03-11 15:27:08

回答

0

您是否嘗試在您的活動中實現onclicklistener?之後,對於所有組件,您應該設置其onclicklistener.But有一個重要的點.Radiobutton和複選框有自己的偵聽器,「setOnCheckedChangeListener」。我認爲你應該使用它。但是,如果你想,你可以像這樣實現OnClickListener。

public class myActivity extends Activity implements OnClickListener { 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

      button1.setOnClickListener(this); 
      checkbox1.setOnClickListener(this); 
      radiobuton1.setOnClickListener(this); 

} 

@Override 
public void onClick(View v) { 
    //You can listen "click event" of button1 ,checkbox1 and radiobutton1 here. 

} 

} 
0
RadioButton rb ; 
CheckBox cb; 
Button btn; 

public void MultiEvent (int clickId){ 
    if (clickId == 0) { 

    }else if (clickId == 1) { 

    }else if (clickId == 2) { 

    } 
} 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    rb = (RadioButton)findViewById(R.id.radioButton1); 
    cb = (CheckBox)findViewById(R.id.checkBox1); 
    btn = (Button)findViewById(R.id.button1); 

    btn.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      // TODO Auto-generated method stub 
      int clickId = 0; 
      MultiEvent (clickId); 
     } 
    }); 

    rb.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      int clickId = 1; 
      MultiEvent (clickId); 
     } 
    }); 

    cb.setOnCheckedChangeListener(new OnCheckedChangeListener() { 

     @Override 
     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
      // TODO Auto-generated method stub 
      int clickId = 2; 
      MultiEvent (clickId); 
     } 
    }); 


}