簡體   English   中英

在android中動態添加的兩個復選框在一行表格的布局中是依賴的

[英]In android dynamically added two checkbox in a row of table layout are dependent

在android動態表布局中包含多行,單行包含2列,第一列為動態復選框chk啟用,第二列也包含動態復選框chk1並被禁用。其中第一個復選框被選中,則僅第二個復選框必須被啟用下面是代碼。

例如第二行chk.getid(2)和chk1.getid(2)。

chk(2).onclicklistener()何時chk1(2).enable(“ true”)。

如何在chk(2).onClicklistener()中引用chk1(2)

for(int i=0;i<10;i++)
{
  s1 = new TableRow(this);
  s1.setId(10);
  s1.setBackgroundResource(R.drawable.grey_list_bg);
  s1.setLayoutParams(new LayoutParams(
                LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));

  chk = new CheckBox(this);
  chk.setText("A");
  chk.setId(count);
  chk.setGravity(Gravity.CENTER);
  chk.setTextSize(18);
  chk.setOnClickListener(getOnClickDoSomething(chk));
  s1.addView(chk);

  chk1 = new CheckBox(this);
  chk1.setText("L");
  chk1.setId(count1);
  chk1.setEnabled(false);
  chk1.setGravity(Gravity.CENTER);
  chk1.setTextSize(18);
  chk1.setOnClickListener(getOnClickDoSomething1(chk1));
  s1.addView(chk1);

  s1_table.addView(s1,
                new TableLayout.LayoutParams(LayoutParams.FILL_PARENT,
                        LayoutParams.WRAP_CONTENT));

  }


   View.OnClickListener getOnClickDoSomething(final Button button) {
    // TODO Auto-generated method stub
    return new View.OnClickListener() {
        public void onClick(View v) {


            String Q = "Q" + button.getId();
            Log.d("Q", "" + Q);

            if (Q.equals("Q0")) {

                if (Q0 == 0) {
                    Log.d("id", "" + button.getId());
                    // button.setText("absent");
                    Log.d("txt", button.getText().toString());
                    Q0 = 1;
                    int id=button.getId();
                    Acount++;
                    Pcount--;

                    //chk1.setId(id);
                    //chk1.setEnabled(true);
                    tvPresent.setText("" + Pcount);
                    tvabsent.setText("" + Acount);
                    Log.d("AC", "" + Acount);
                    Log.d("PC", "" + Pcount);
                    Log.d("Q0", "" + Q0);
                } else if (Q0 == 1) {
                    Log.d("id", "" + button.getId());
                    // button.setText("present");
                    Log.d("txt", button.getText().toString());
                    Q0 = 0;
                    int id=button.getId();
                    Log.d("Q0", "" + Q0);
                    Acount--;
                    Pcount++;
                    //chk1.setId(id);
                    //chk1.setEnabled(false);

                    tvPresent.setText("" + Pcount);
                    tvabsent.setText("" + Acount);
                    Log.d("AC", "" + Acount);
                    Log.d("PC", "" + Pcount);
                }

            }

            if (Q.equals("Q1")) {
                if (Q1 == 0) {
                    Log.d("id", "" + button.getId());
                    // button.setText("absent");
                    Log.d("txt", button.getText().toString());
                    Q1 = 1;
                    Acount++;
                    Pcount--;
                    button.setEnabled(true);
                    tvPresent.setText("" + Pcount);
                    tvabsent.setText("" + Acount);
                    Log.d("AC", "" + Acount);
                    Log.d("PC", "" + Pcount);

                    Log.d("Q1", "" + Q1);
                } else if (Q1 == 1) {
                    Log.d("id", "" + button.getId());
                    // button.setText("present");
                    Log.d("txt", button.getText().toString());
                    Q1 = 0;
                    Log.d("Q1", "" + Q1);
                    Acount--;
                    Pcount++;
                    button.setEnabled(false);
                    tvPresent.setText("" + Pcount);
                    tvabsent.setText("" + Acount);
                    Log.d("AC", "" + Acount);
                    Log.d("PC", "" + Pcount);
                }
            }

            if (Q.equals("Q2")) {
                if (Q2 == 0) {
                    Log.d("id", "" + button.getId());
                    // button.setText("absent");
                    Log.d("txt", button.getText().toString());
                    Q2 = 1;
                    Acount++;
                    Pcount--;
                    button.setEnabled(true);
                    Log.d("AC", "" + Acount);
                    Log.d("PC", "" + Pcount);
                    tvPresent.setText("" + Pcount);
                    tvabsent.setText("" + Acount);
                    Log.d("Q2", "" + Q2);
                } else if (Q2 == 1) {
                    Log.d("id", "" + button.getId());
                    // button.setText("present");
                    Log.d("txt", button.getText().toString());
                    Q2 = 0;
                    Log.d("Q2", "" + Q2);
                    Acount--;
                    Pcount++;
                    button.setEnabled(false);
                    Log.d("AC", "" + Acount);
                    Log.d("PC", "" + Pcount);

                    tvPresent.setText("" + Pcount);
                    tvabsent.setText("" + Acount);
                }
            }

            if (Q.equals("Q3")) {
                if (Q3 == 0) {
                    Log.d("id", "" + button.getId());
                    // button.setText("absent");
                    Log.d("txt", button.getText().toString());
                    Q3 = 1;
                    Acount++;
                    Pcount--;
                    button.setEnabled(true);
                    Log.d("AC", "" + Acount);
                    Log.d("PC", "" + Pcount);
                    tvPresent.setText("" + Pcount);
                    tvabsent.setText("" + Acount);
                    Log.d("Q3", "" + Q3);
                } else if (Q3 == 1) {
                    Log.d("id", "" + button.getId());
                    // button.setText("present");
                    Log.d("txt", button.getText().toString());
                    Q3 = 0;
                    Log.d("Q3", "" + Q3);
                    Acount--;
                    Pcount++;
                    button.setEnabled(false);
                    Log.d("AC", "" + Acount);
                    Log.d("PC", "" + Pcount);
                    tvPresent.setText("" + Pcount);
                    tvabsent.setText("" + Acount);
                }
            }


            }

        }
       };

      }


   View.OnClickListener getOnClickDoSomething1(final Button button) {
    // TODO Auto-generated method stub
    return new View.OnClickListener() {
        public void onClick(View v) {
            int p = 0;

            String LE = "LE" + button.getId();
            Log.d("LE", "" + LE);

            if (LE.equals("LE0")) {

                if (LE0 == 0) {
                    Log.d("id", "" + button.getId());
                    // button.setText("absent");
                    Log.d("txt", button.getText().toString());
                    LE0 = 1;
                    Acount--;
                    LEcount++;

                    Log.d("AC", "" + Acount);
                    Log.d("LE", "" + LEcount);
                    Log.d("LE0", "" + LE0);
                } else if (LE0 == 1) {
                    Log.d("id", "" + button.getId());
                    // button.setText("present");
                    Log.d("txt", button.getText().toString());
                    LE0 = 0;
                    Log.d("LE0", "" + LE0);
                    Acount++;
                    LEcount--;

                    Log.d("AC", "" + Acount);
                    Log.d("LE", "" + LEcount);
                }

            }

            if (LE.equals("LE1")) {
                if (LE1 == 0) {
                    Log.d("id", "" + button.getId());
                    // button.setText("absent");
                    Log.d("txt", button.getText().toString());
                    LE1 = 1;
                    Acount--;
                    LEcount++;

                    Log.d("AC", "" + Acount);
                    Log.d("LE", "" + LEcount);

                    Log.d("LE1", "" + LE1);
                } else if (LE1 == 1) {
                    Log.d("id", "" + button.getId());
                    // button.setText("present");
                    Log.d("txt", button.getText().toString());
                    LE1 = 0;
                    Log.d("LE1", "" + LE1);
                    Acount++;
                    LEcount--;

                    Log.d("AC", "" + Acount);
                    Log.d("LE", "" + LEcount);
                }
            }

            if (LE.equals("LE2")) {
                if (LE2 == 0) {
                    Log.d("id", "" + button.getId());
                    // button.setText("absent");
                    Log.d("txt", button.getText().toString());
                    LE2 = 1;
                    Acount--;
                    LEcount++;
                    Log.d("AC", "" + Acount);
                    Log.d("LE", "" + LEcount);

                    Log.d("LE2", "" + LE2);
                } else if (LE2 == 1) {
                    Log.d("id", "" + button.getId());
                    // button.setText("present");
                    Log.d("txt", button.getText().toString());
                    LE2 = 0;
                    Log.d("LE2", "" + LE2);
                    Acount++;
                    LEcount--;
                    Log.d("AC", "" + Acount);
                    Log.d("LE", "" + LEcount);


                }
            }

            if (LE.equals("LE3")) {
                if (LE3 == 0) {
                    Log.d("id", "" + button.getId());
                    // button.setText("absent");
                    Log.d("txt", button.getText().toString());
                    LE3 = 1;
                    Acount--;
                    LEcount++;
                    Log.d("AC", "" + Acount);
                    Log.d("LE", "" + LEcount);

                    Log.d("LE3", "" + LE3);
                } else if (LE3 == 1) {
                    Log.d("id", "" + button.getId());
                    // button.setText("present");
                    Log.d("txt", button.getText().toString());
                    LE3 = 0;
                    Log.d("LE3", "" + LE3);
                    Acount++;
                    LEcount--;
                    Log.d("AC", "" + Acount);
                    Log.d("LE", "" + LEcount);

                }
            }
            }

        }
    };

}

您可以使用getId()方法來區分它:

if (v.getId() == R.id.<CheckBox2Id>) {
    //do something
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM