DialogFragment 안에 ListView 넣기
Activity에 ListView 넣기와 다르지 않다.
CustomAdapter를 구현하여 View에 집어넣으면 된다.
public Dialog onCreateDialog(Bundle savedInstanceState) {
mCheckBoxHashMap= mListener.getCheckBoxHashMap();
mCheckBoxArrayAdapter = new CheckBoxArrayAdapter(getActivity());
mCheckBoxArrayAdapter.addAll(mCheckBoxHashMap.keySet());
ListView tmp = (ListView)getActivity().getLayoutInflater().inflate(R.layout.alert_dialogfragment_checkbox_list,null);
tmp.setAdapter(mCheckBoxArrayAdapter);
int title = getArguments().getInt("title");
return new AlertDialog.Builder(getActivity())
// .setIcon(R.drawable.ic_launcher)
.setTitle(title)
//.setAdapter(mCheckBoxArrayAdapter, null)
.setView(tmp)
.setPositiveButton(R.string.checkbox_list_alert_dialogfragment_ok,
setAdapter에 Adapter를 않넣고 listView에 setAdapter에 넣은 이유는
AlertDialog에 setAdapter에 CustomAdapter를 넣으면 getView에서 연결한 이벤트들이 작동을 하지 않기 때문이다. 아래의 onClick이벤트를 view에 연결하여 사용하고 있다. 위 빨간색으로 표시한 구문처럼 사용해야 아래 이벤트가 정상적으로 동작한다.
@Override
public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder=null;
~~~~~
viewHolder.cbId.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LOG.i(CLASSNAME, "onClick");
'PROGRAMING > Android' 카테고리의 다른 글
Fragment와 BackStack 이슈 (show,hide 버그로 보여짐) replace 사용. (0) | 2013.03.03 |
---|---|
interface를 이용하여 DialogFragment이벤트의 구현부를 다른 장소에 구현한다. (0) | 2013.03.03 |
DialogFragment (0) | 2013.03.03 |
Media File 삭제 , 단일 File MediaScanning 하기 (0) | 2013.02.24 |
Fragment에서 하단 OptionMenu 사용하는 방법 (0) | 2013.02.24 |