마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

custom dialog에서 custom listview구현.

0 추천
public class MenuDialog extends Activity {
     
    private ListView mListView = null;
    private ListViewAdapter mAdapter = null;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.menu_dialog);
         
         
        mListView = (ListView) findViewById(R.id.menuLV);
          
        mAdapter = new ListViewAdapter(this);
        mListView.setAdapter(mAdapter);
         
        mAdapter.addItem("항목관리", "항목을 추가,삭제,수정을 하는 메뉴");
         
         
        mListView.setOnItemClickListener(new OnItemClickListener() {
              
            @Override
            public void onItemClick(AdapterView<?> parent, View v, int position, long id){
                MenuData mData = mAdapter.mListData.get(position);
                Toast.makeText(MenuDialog.this, mData.mMenuName, Toast.LENGTH_SHORT).show();
            }
        });
         
         
         
    }
     
     @Override
        public void onBackPressed() {
            super.onBackPressed();
            finish();
        }
 
     
     
    private class ViewHolder {
         public TextView mMenuName;
         public TextView mMenuCommet;
    }
     
    private class ListViewAdapter extends BaseAdapter {
        private Context mContext = null;
        private ArrayList<MenuData> mListData = new ArrayList<MenuData>();
      
        public ListViewAdapter(Context mContext) {
            super();
            this.mContext = mContext;
        }
      
 
        @Override
        public int getCount() {
            return mListData.size();
        }
      
        @Override
        public Object getItem(int position) {
            return mListData.get(position);
        }
      
        @Override
        public long getItemId(int position) {
            return position;
        }
      
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            ViewHolder holder;
            if (convertView == null) {
                holder = new ViewHolder();
                 
                LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                convertView = inflater.inflate(R.layout.menulist, null);
                 
                holder.mMenuName = (TextView)findViewById(R.id.mununame);
                holder.mMenuCommet = (TextView)findViewById(R.id.munucomment);
                 
                convertView.setTag(holder);            
            } else {
                holder = (ViewHolder) convertView.getTag();
            }
             
            MenuData mMenuData = mListData.get(position);
             
            holder.mMenuName.setText(mMenuData.mMenuName);
            holder.mMenuCommet.setText(mMenuData.mMenuComment);
             
             
            return convertView;
        }
         
        public void addItem(String mMenuName, String mMenuCommet){
            MenuData addInfo = null;
            addInfo = new MenuData();
            addInfo.mMenuName = mMenuName;
            addInfo.mMenuComment = mMenuCommet;
                      
            mListData.add(addInfo);
        }
          
        public void remove(int position){
            mListData.remove(position);
            dataChange();
        }
         
        public void dataChange(){
            mAdapter.notifyDataSetChanged();
        }
 
         
    }
}

정상적으로 실행은 되는데 다이얼로그 진입시 프로그램이 멈추면서 진행이 안되는데 런타임 오류라 해결이 안되네요..

고수님들의 많은 도움부탁드립니다.

 

 

쌍둥이준 (180 포인트) 님이 2014년 9월 17일 질문
쌍둥이준님이 2014년 9월 17일 수정
https://www.dropbox.com/s/rmb5yldnyv2efc8/log.txt?dl=0

해당로그 파일을 올립니다.

1개의 답변

0 추천
 
채택된 답변
        mAdapter = new ListViewAdapter(this);
        mAdapter.addItem("항목관리", "항목을 추가,삭제,수정을 하는 메뉴");
 
        mListView.setAdapter(mAdapter);
 

               holder.mMenuName = (TextView) convertView.findViewById(R.id.mununame);

                holder.mMenuCommet = (TextView) convertView.findViewById(R.id.munucomment);
                 
 

 

aucd29 (218,390 포인트) 님이 2014년 9월 17일 답변
쌍둥이준님이 2014년 9월 17일 채택됨
감사합니다. 덕분에 해결되었습니다^^
...