![](/img/trans.png)
[英]Unable to get row id of dynamically added rows in table layout of 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.