2012-04-12 16 views
7

मैं चेक बॉक्स के समूह पर किसी प्रकार का सत्यापन लागू करने की कोशिश कर रहा हूं (उदाहरण के लिए दो विरोधाभासी वस्तुओं को एक साथ चेक नहीं किया जा सकता है) इसलिए मैं किसी भी तरह से चेक बॉक्स ऑब्जेक्ट्स समूह बनाना चाहता हूं और पूरी तरह से आवश्यक फ़ील्ड वैलिडेटर जैसे कुछ लागू करना चाहता हूं समूह एक बार और उस वैधकर्ता में मैं श्रोताओं को पंजीकृत करूंगा और अपने चेक बॉक्स ऑब्जेक्ट्स पर पूरी जांच करूँगा।एंड्रॉइड चेक बॉक्स समूह

क्या मैं एक कोड है कि उस तरह लग रहे हो सकता है की कल्पना:

CheckBoxView allMyCheckBoxes = new CheckBoxView(checkbox1,checkbox2,checkbox3); //varargs 
validate(allMyCheckBoxes); 

मान्य विरोधाभासी चेक बॉक्स और सब कुछ का तर्क शामिल होंगे।

क्या यह पहले से ही एंड्रॉइड में कहीं भी लागू किया गया है? यदि नहीं, तो किसी ने ऐसा कुछ करने की कोशिश की? (उम्मीद है कि इसे यहां हमारे साथ साझा करें)

उत्तर

1

आप रेडियो बटन का उपयोग कर सकते हैं और उनमें से विभिन्न समूहों को स्थापित कर सकते हैं।

This documentation और This tutorial यदि आपको लगता है कि रेडियो बटन जाने का तरीका हैं तो आपको मदद करनी चाहिए।

+0

जवाब के लिए धन्यवाद, लेकिन जब मुझे पता है कि रेडियो बटन है कि चारों ओर एक रास्ता है, लेकिन यह विचार है कि मैं के बारे में विकास की प्रक्रिया से मान्यता अलग है सोच रहा हूँ, इसलिए जो कुछ भी किसी गतिविधि में लिखना मेरी मान्यता कक्षा चाहिए इसे कोई समस्या नहीं है। आशा है कि आप समझ गए कि मेरा क्या मतलब है। –

+0

जहां तक ​​मुझे पता है रेडियो बटन मल्टीप्लेक्स चयन का समर्थन नहीं करते हैं – aclokay

4

यह तर्क एक और अधिक चेकबॉक्स

private Checkbox day = (checkbox)findviewbyid(R.id.day); 
private Checkbox night =(checkbox)findviewbyid(R.id.night); 

day.setOnCheckedChangeListener(new OnCheckedChangeListener() { 

    @Override 
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
     if (!night.isChecked() && !day.isChecked()) { 
      night.setChecked(true); 
     } 

    } 
}); 
night.setOnCheckedChangeListener(new OnCheckedChangeListener() { 

    @Override 
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
     if (!day.isChecked() && !night.isChecked()) { 
      day.setChecked(true); 
     } 

    } 
}); 
3

यहाँ मैं क्या किया है का चयन करने के लिए अनुमति देगा। सुनिश्चित नहीं है कि यह आपके लिए काम करेगा, लेकिन ऐसा कुछ जिसे आप शुरुआत के रूप में उपयोग कर सकते हैं। मेरे चेक बॉक्स मैं चेक श्रोताओं पर कोई जरूरत नहीं है, लेकिन आप प्रत्येक के लिए उन्हें जोड़ने अगर आप रेडियो बटन के लिए इसी तरह चेक बॉक्स पर सत्यापन करने के लिए

public class MainActivity extends AppCompatActivity implements View.OnClickListener { 
    private CheckBox chk1, chk2, chk3; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    chk1 = (CheckBox) findViewById(R.id.checkbox1); 
    chk2 = (CheckBox) findViewById(R.id.checkbox2); 
    chk3 = (CheckBox) findViewById(R.id.checkbox3); 
    if (chk1.isChecked()) { 
     chk1.setChecked(false); 
    } 
     else if(chk2.isChecked()){ 
      chk2.setChecked(false); 
     } 
    else { 
     chk3.setChecked(false); 
    } 
    chk1.setOnClickListener(this); 
    chk2.setOnClickListener(this); 
    chk3.setOnClickListener(this); 
    } 

    @Override 
    public void onClick(View view) { 
    switch(view.getId()){ 
     case R.id.checkbox1: 
     chk1.setChecked(true); 
     chk2.setChecked(false); 
     chk3.setChecked(false); 
     break; 
     case R.id.checkbox2: 
     chk2.setChecked(true); 
     chk3.setChecked(false); 
     chk1.setChecked(false); 
     break; 
     case R.id.checkbox3: 
     chk3.setChecked(true); 
     chk2.setChecked(false); 
     chk1.setChecked(false); 
     break; 
    } 
    } 
} 
0

सबसे अच्छा तरीका चाहते हैं सकता है

// Implements your activity  
CompoundButton.OnCheckedChangeListener 
// Declare global variables 
private CheckBox cbDriver, cbPickDrop; 
private String strCB; 

// Bind components and set listeners in onCreate() 
cbDriver = (CheckBox) findViewById(R.id.driverCB); 
cbPickDrop = (CheckBox) findViewById(R.id.pickDropCB); 
cbDriver.setOnCheckedChangeListener(this); 
cbPickDrop.setOnCheckedChangeListener(this); 


// write this method inside your activity 
@Override 
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
    switch (buttonView.getId()){ 
     case R.id.driverCB: 
      if (isChecked) { 
       cbPickDrop.setChecked(false); 
       strCB = cbDriver.getText().toString(); 
       DialogManager.showToast(MyActivity.this, strCB); 
      } 
      break; 
     case R.id.pickDropCB: 
      if (isChecked) { 
       cbDriver.setChecked(false); 
       strCB = cbPickDrop.getText().toString(); 
       DialogManager.showToast(MyActivity.this, strCB); 
      } 
      break; 
    } 

} 
1

एक और युक्ति।

इस तरह से श्रोता को आसानी से पंजीकृत कर सकते हैं।

private CheckBox[] chkBoxs; 
private Integer[] chkBoxIds = {R.id.a, R.id.b, R.id.c .....}; 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    chkBoxs = new CheckBox[chkBoxIds.length]; 
    for(int i = 0; i < chkBoxIds.length; i++) { 
     chkBoxs[i] = (CheckBox) findViewById(chkBoxIds[i]); 
     chkBoxs[i].setOnCheckedChangeListener(this); 
    } 

} 
संबंधित मुद्दे