검색결과 리스트
글
다이얼로그 선택에서 기본은 하나만 선택 할 것인지 다중으로 선택 할 것인지를 나타낸다.
setItems를 할 경우 뒤 쪽에 선택 부분이 나타나지 않고 xml 상에 정의된 배열 데이터가 그대로 나타나지만,
setSingleChoiceItems 를 이용해서 다이얼로그 속성을 싱글 선택일 경우 선택 부분이 라디오 버튼으로 나온다.
다음 코드를 보면 이 두개의 차이를 볼 수가 있다.
public class ImageViewActivity extends Activity{
Button btns;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btns = (Button)findViewById(R.id.btn1);
btns.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
AlertDialog.Builder alt = new AlertDialog.Builder(ImageViewActivity.this);
alt.setTitle("Title");
alt.setIcon(R.drawable.ic_launcher);
//alt.setItems(R.array.array, new DialogInterface.OnClickListener() {
alt.setSingleChoiceItems(R.array.array, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
String[] temp = getResources().getStringArray(R.array.array);
TextView txt = (TextView)findViewById(R.id.txt_view);
txt.setText(temp[which]);
}
});
alt.setNegativeButton("닫기", null);
alt.show();
}
});
}
}
다른 경우로 멀티로 선택 가능 한 경우이다. 위의 코드에서 한 부분을
alt.setMultiChoiceItems(R.array.array, m_flag, new DialogInterface.OnMultiChoiceClickListener() {
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
m_flag[which] = isChecked;
String[] temp = getResources().getStringArray(R.array.array);
TextView txt = (TextView)findViewById(R.id.txt_view);
String result = "";
for(int i=0;i<m_flag.length;i++){
if(m_flag[i]){
result+=temp[i] + " ";
}
else{
result.replace(temp[i]+" ", "");
}
}
txt.setText(result);
}
});
대체하면 아이템의 마지막 부분에 체크 박스 형태가 생기면서 여러개를 선택 할 수 있다.
실행을 해 보면 그 차이를 알 수가 있을 것이다.
RECENT COMMENT