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

ListView에 있는 EditText의 값을 저장하고 싶은데 아이디값을 모르겠어요

0 추천
 public class MyAdapter extends BaseAdapter {
        Context context;
        int layoutId;
        ArrayList<PostData> myDataArr;
        LayoutInflater Inflater;
        MyAdapter(Context _context, int _layoutId, ArrayList<PostData> _myDataArr){
            context = _context;
            layoutId = _layoutId;
            myDataArr = _myDataArr;
            Inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            //infate는 다른 layout의 xml안에 뷰를 추가적으로 사용하고 싶을 때 쓰는 것이다.
        }

        @Override //리스트의 갯수를 반환해주는 함수로 Arraylist의 사이즈를 반환해준다.
        public int getCount() {
            return myDataArr.size();
        }

        @Override // Adapter가 관리하는 Data의 Item 의 Position을 <객체> 형태로 얻어 온다.
        public EditText getItem(int position) {
            return myDataArr.get(position).Edit;
        }

        @Override //해당 Item를 나타내는 고유한정보로 position을 리턴해주면된다.
        public long getItemId(int position) {
            return position;
        }

        @Override ////매우중요! ListViewd에 뿌려질 한줄의 row를 설
        public View getView(final int position, View convertView, ViewGroup parent) {
            final int pos = position;


            if (convertView == null)  {
                convertView = Inflater.inflate(layoutId, parent, false);
            }


            ImageView main_img = (ImageView)convertView.findViewById(R.id.main_img);
            final EditText msg_edit = (EditText)convertView.findViewById(R.id.main_title);
            EditText main_content = (EditText)convertView.findViewById(R.id.main_content);
            main_img.setImageBitmap(myDataArr.get(position).myImg);

            return convertView;
        }

    }

////////////////////////////////////////////////////////////////////////////////
    public void Test(View view) {  //Onclick 함수입니다.
       for(int i=0;i<mAdapter.getCount();i++){
            titleTxt = mAdapter.getItem(i).getText().toString();
            // imageApplication.put("title" + i, titleTxt);
        }
}

//////////////////////////////////////////////////////////////////////////////

PostData 클래스입니다

public class PostData {
    Bitmap myImg;
    EditText Edit;
    EditText Edit2;

    PostData(Bitmap _myImg, EditText _Edit, EditText _Eidt2){
        myImg = _myImg;
        Edit = _Edit;
        Edit2 = _Eidt2;
    }
}

리스트뷰에 의해 만들어진 EditText의 값을 저장하고 싶은데 아이디값을 몰라서 .getText().toString();을 쓸 수가 없네요..

그래서 아래와 같은 방법으로 해봤는데 오류가 나서 어떻게 해야 할 지 조언을 주셨으면 좋겠습니다 ㅠㅠ..

오류는 Nullpoint익셉션 인 것 같아요..

 

 

장지 (170 포인트) 님이 2015년 3월 15일 질문

1개의 답변

0 추천
 
채택된 답변
PostData에서

getter / setter 만들어주셔야죠!

 

setEdit getEdit 이런식으로 만드셔서

생성자인 PostData에서

this.setEdit(변수)이런식으로 핫니다음

 

리스트뷰에 의해 만들어진 리스트에서

onitemclicklistener(position이용해서

뭐 예를 들면 ArrayList<PostData> test가 있다면

test.get(position).getEdit(변수) 이런식으로 가져오시면 됩니다.

 

밤늦게까지 지금 새벽 3시 12분... 몽롱하여 자세힌 답변 못드려서 죄송. 이거보고 이해안되시면 밝은 날에 다시 자세히 설명해드리죠.
Djleeee (13,180 포인트) 님이 2015년 3월 16일 답변
장지님이 2015년 3월 25일 채택됨
...