0

次のようにチェックボックスを動的に追加します。

 public void addFiles()
        {

             LinearLayout layout = (LinearLayout) findViewById(R.id.filesList);

            if(!FileManagerActivity.finalAttachFiles.isEmpty())
            {   

                for (final File file:FileManagerActivity.finalAttachFiles)
                {   

                    Log.i("what I've got", file.toString());
                    View line = new View(this);
                    line.setLayoutParams(new LayoutParams(1, LayoutParams.MATCH_PARENT));
                    line.setBackgroundColor(0xAA345556);
                    informationView= new CheckBox(this);
                    informationView.setTextColor(Color.BLACK);
                    informationView.setTextSize(16);
                    informationView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
                    informationView.setCompoundDrawablesWithIntrinsicBounds(R.drawable.file_icon, 0, 0, 0);
                    informationView.setText(file.getName().toString());
                    layout.addView(informationView, 0);
                    layout.addView(line, 1);
                    layout.postInvalidate();


                }
            }

        }

そして、私はボタンを持っています.onClickイベントはチェックボックスのチェック可能な状態を取得し、チェックされたものを削除する必要があります...どうすればこれを実装できますか?

4

3 に答える 3

2

次のようなチェックボックスを追加できます。

for(int i=0;i<totalCB;i++){
    CheckBox chB=new CheckBox(context);
    ...
    chB.setId(i);
    layout.add(...);// add checkbox to view
}

今、ボタンをクリックすると、

for(int i=0;i<totalCB;i++){
    CheckBox cb=(CheckBox)findViewById(i);
    boolean checked=cd.isChecked();// status of checkbox

    if(checked){
       // perform action 
    }
}
于 2012-08-31T10:51:58.560 に答える
1
 for(int i=0;i<layout.getChildCount;i++){
   if ( ((CheckBox) layout.getChildAt(i)).isChecked() )
                 //remove the Box
}

これでうまくいくはずです。レイアウトに他のビューがある場合、またはチェックボックスのみをホストする新しいレイアウトを作成する場合は、コードを変更する必要がある場合があります。もちろん、コードはボタン onclicklistener の OnClick メソッドに入ります。

于 2012-08-31T10:40:30.213 に答える
0

を使用して、チェックボックスの ID を設定できますinformationView.setId(someUniqueInt)。次に、アクティビティ内の任意の場所でテキスト ボックスを見つけます。

CheckBox checkBox = (CheckBox) findViewById(someUniqueInt)

そして、使用します

if (checkBox.isChecked()) {
     //do whatever you want here
}
于 2012-08-31T10:41:52.003 に答える