안드로이드 개발 질문/답변
(글 수 45,052)
리스트뷰에서
체크박스를 전체 선택 해제 할려면
어떻게 해야합니까?
public class listview extends ListActivity{
String[] items={"lorem", "ipsum", "dolor", "sit", "amet",
"consectetuer", "adipiscing", "elit", "morbi", "vel",
"ligula", "vitae", "arcu", "aliquet", "mollis",
"etiam", "vel", "erat", "placerat", "ante",
"porttitor", "sodales", "pellentesque", "augue",
"purus"};
boolean checkselected=false;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
setListAdapter(new IconicAdapter(this));
final CheckBox check1 = (CheckBox)findViewById(R.id.CheckBox01);
final Button BtnOK=(Button)findViewById(R.id.BtnOK);
//체크 박스 이벤트 리스너
check1.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
System.out.println("check");
}
});
//확인 버튼 클릭
BtnOK.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(false==checkselected)
{
check1.setChecked(true);
checkselected=true;
}
else
{
check1.setChecked(false);
checkselected=false;
}
}
});
}
class IconicAdapter extends ArrayAdapter {
Activity context;
IconicAdapter(Activity context) {
super(context, R.layout.row, items);
this.context=context;
}
public View getView(int position, View convertView,
ViewGroup parent) {
LayoutInflater inflater=context.getLayoutInflater();
View row=inflater.inflate(R.layout.row, null);
TextView label=(TextView)row.findViewById(R.id.toptext);
label.setText(items[position]);
CheckBox check2 = (CheckBox)row.findViewById(R.id.CheckBox02);
if(true==checkselected)
{
check2.setChecked(true);
}
else
{
check2.setChecked(false);
}
check2.setFocusable(false);
return(row);
}
@Override
public void setNotifyOnChange(boolean notifyOnChange) {
// TODO Auto-generated method stub
super.setNotifyOnChange(notifyOnChange);
LayoutInflater inflater=context.getLayoutInflater();
View row=inflater.inflate(R.layout.row, null);
CheckBox check2 = (CheckBox)row.findViewById(R.id.CheckBox02);
if(true==checkselected)
{
check2.setChecked(true);
}
}
}
체크박스를 전체 선택 해제 할려면
어떻게 해야합니까?
public class listview extends ListActivity{
String[] items={"lorem", "ipsum", "dolor", "sit", "amet",
"consectetuer", "adipiscing", "elit", "morbi", "vel",
"ligula", "vitae", "arcu", "aliquet", "mollis",
"etiam", "vel", "erat", "placerat", "ante",
"porttitor", "sodales", "pellentesque", "augue",
"purus"};
boolean checkselected=false;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
setListAdapter(new IconicAdapter(this));
final CheckBox check1 = (CheckBox)findViewById(R.id.CheckBox01);
final Button BtnOK=(Button)findViewById(R.id.BtnOK);
//체크 박스 이벤트 리스너
check1.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
System.out.println("check");
}
});
//확인 버튼 클릭
BtnOK.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(false==checkselected)
{
check1.setChecked(true);
checkselected=true;
}
else
{
check1.setChecked(false);
checkselected=false;
}
}
});
}
class IconicAdapter extends ArrayAdapter {
Activity context;
IconicAdapter(Activity context) {
super(context, R.layout.row, items);
this.context=context;
}
public View getView(int position, View convertView,
ViewGroup parent) {
LayoutInflater inflater=context.getLayoutInflater();
View row=inflater.inflate(R.layout.row, null);
TextView label=(TextView)row.findViewById(R.id.toptext);
label.setText(items[position]);
CheckBox check2 = (CheckBox)row.findViewById(R.id.CheckBox02);
if(true==checkselected)
{
check2.setChecked(true);
}
else
{
check2.setChecked(false);
}
check2.setFocusable(false);
return(row);
}
@Override
public void setNotifyOnChange(boolean notifyOnChange) {
// TODO Auto-generated method stub
super.setNotifyOnChange(notifyOnChange);
LayoutInflater inflater=context.getLayoutInflater();
View row=inflater.inflate(R.layout.row, null);
CheckBox check2 = (CheckBox)row.findViewById(R.id.CheckBox02);
if(true==checkselected)
{
check2.setChecked(true);
}
}
}