2011-09-28 27 views
0

我需要使用Java以編程方式創建多個複選框,檢查是否其中一個已選中,並且當我單擊時下一步按鈕控件將移至下一頁。如果沒有選中,則必須顯示Toast消息。請建議,因爲我是Android新手。在Android中使用Java以編程方式創建並驗證複選框

這裏是我的代碼:

public class TestValidCheckboxActivity extends Activity implements OnCheckedChangeListener{ 

private RelativeLayout layoutMiddle = null; 
private TableLayout layout1; 
private CheckBox chk; 
private String[] resarr = {"silu", "pinky", "meera"}; 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    layoutMiddle = (RelativeLayout)findViewById(R.id.layoutMiddleUp); 
    layout1 = (TableLayout)findViewById(R.id.tableId1); 
    final Button btnNext = (Button)findViewById(R.id.btnNext); 
    int i = 0; 
     for(String res: resarr){ 
      TableRow tr=new TableRow(this); 
       chk=new CheckBox(this); 
       chk.setId(i); 
       chk.setText(res); 
       chk.setTextColor(Color.BLACK); 
       tr.addView(chk); 
       i++; 
      RelativeLayout.LayoutParams lay = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT); 
      lay.addRule(RelativeLayout.BELOW, layoutMiddle.getId()); 
      layout1.addView(tr, lay); 
     } 
     chk.setOnCheckedChangeListener(new OnCheckedChangeListener() 
     { 
      @Override 
      public void onCheckedChanged(CompoundButton arg0, boolean arg1) { 
       // TODO Auto-generated method stub 
       if (arg1) 
       { 
        btnNext.setOnClickListener(new View.OnClickListener() { 
         public void onClick(final View view) { 
          Log.e("1111111111","111111111"); 
           if(chk.isChecked()){ 
            Intent intent = new Intent(view.getContext(),NextPage.class); 
            startActivityForResult(intent, 0); 
           }else{ 
            Toast msg = Toast.makeText(view.getContext(), "please choose at least one option", Toast.LENGTH_LONG); 
            msg.show(); 
           } 

         } 
        }); 
       }else{ 
        Toast msg = Toast.makeText(TestValidCheckboxActivity.this, "please choose at least one option", Toast.LENGTH_LONG); 
       } 
      } 

     }); 

    } 
    @Override 
    public void onCheckedChanged(CompoundButton arg0, boolean arg1) { 
    // TODO Auto-generated method stub 

    } 
} 

回答

0

你能告訴我們一些你的佈局代碼,這意味着,在XML文件中定義的複選框,並做他們的ID?

如果他們這樣做,您可以使用findViewByID訪問它們中的每一個,並逐個檢查其狀態。

2

這可以輕鬆完成 採取布爾標誌,並設置爲true它checkbox.isChecked();(內置) 然後檢查是否標誌設置,然後導航到下一個別的土司

相關問題