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익셉션 인 것 같아요..