0
私はチェックボックスがチェックされているかどうかを判断する問題に直面しています。これは、それらが動的に生成されるためです。私は各動的チェックボックスのOnCheckedChangeListener()を作成しようとしましたが、最後の動的チェックボックスのOnCheckedChangeListener()のみが実行されることが確認されました。私がしたいことは、彼らがチェックにチェックされているか否かを各動的チェックボックスを決定できるようにすることです、動的に生成されるチェックボックスからチェックされたプロパティを取得する方法は?
public class yc_SubmitAttendance_ClassMode extends Activity {
Context myContext = this;
myDbAdapter myDB = null;
Cursor myCur = null;
Spinner mySpin = null;
TableLayout tl = null;
CheckBox myCB = null;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.yc_studattend_classmode_layout);
mySpin = (Spinner)findViewById(R.id.spinClassModeSelectModGrp);
myDB = new myDbAdapter(myContext);
tl = (TableLayout)findViewById(R.id.classModeTableLayout);
//retrieve dynamic data
myCur = myDB.retrieveAttnForSelectedMod(mySpin.getItemAtPosition(arg2).toString());
myCur.moveToFirst();
for(byte rowNo=0;rowNo<myCur.getCount();rowNo++)
{
TableRow tr = new TableRow(myContext);
/*Some codes intentionally left missing */
myCB = new CheckBox(myContext);
myCB.setId(rowNo);
//Setting a onCheckedListener on each of the checkbox generated
myCB.setOnCheckedChangeListener(new OnCheckedChangeListener(){
public void onCheckedChanged(CompoundButton arg0,
boolean arg1) {
// TODO Auto-generated method stub
myCur.moveToPosition(myCB.getId());
if(myCB.isChecked())
{
Toast.makeText(myContext,"Attendance deducted to " + ((myCur.getFloat(2)) - 2) + "%", Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(myContext,"Attendance reverting to " + (myCur.getFloat(2)) + "%", Toast.LENGTH_SHORT).show();
}
}
});
//Insert the checkbox onto this row
tr.addView(myCB);
//Append this row to the TableLayout
tl.addView(tr, new TableLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
myCur.moveToNext();
} //end of for-loop
} // end of onCreate
}//end of class
をしかし:
はここに私のコードスニペットです(それが役に立つことを願っています)。
ヨンチャイ
Hii Grazahd、あなたの迅速な対応に感謝します。これは今やチャンピオンのように動作し、** onCheckedChangeListener()**についての理解を明確にしました。価値のあるサムサップ。 –