Activity에서 사용하던 커스텀뷰를 fragment에 이식하려고하는데 잘안되네요;;
activity를 사용했을때는 에러가안나던 부분(붉은색)이 fragment로바꾸니 어댑터를 인식 못하는지
The constructor myAdapter(firsttap, ArrayList<myData>) is undefined 라고 뜹니다.
도와주세요 ㅜㅜ
*커스텀뷰가 들어가는 액티비티
public class firsttap extends Fragment {
ListView list;
myAdapter adapter;
ArrayList<myData> arrData;
private View myFragmentView;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
//리스트에 보여줄 데이터를 세팅한다.
setData();
//어댑터 생성
adapter = new myAdapter(this, arrData);
//리스트뷰에 어댑터 연결
list = (ListView)myFragmentView.findViewById(R.id.timeline);
list.setAdapter(adapter);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
View view = inflater.inflate(R.layout.firsttap, container, false);
return view;
}
private void setData()
{
arrData = new ArrayList<myData>();
arrData.add(new myData(R.drawable.start,R.drawable.ic_launcher, "권지용", "내용"));
arrData.add(new myData(R.drawable.start,R.drawable.start, "이승기",
"테스트테스트테스트테스트테스트테스트테스트테스트테스트테스트테스트테스트테스트테스트테스트테스트테스트테스트테스트테스트테스트테스트테스트테스트테스트테스트테스트테스트테스트"));
arrData.add(new myData(R.drawable.ic_launcher,R.drawable.ic_launcher, "신동엽", "안녕));
}
}
*어댑터부분
public class myAdapter extends BaseAdapter {
private ArrayList<myData> arrData;
private LayoutInflater inflater;
public myAdapter(Context c, ArrayList<myData> arr) {
this.arrData = arr;
inflater = (LayoutInflater)c.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public int getCount() {
return arrData.size();
}
public Object getItem(int position) {
return arrData.get(position).getName();
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView == null){
convertView = inflater.inflate(R.layout.firsttap_layout, parent, false);
}
ImageView profileimage = (ImageView)convertView.findViewById(R.id.profileimage);
profileimage.setImageResource(arrData.get(position).getImage());
ImageView imagearea = (ImageView)convertView.findViewById(R.id.imagearea);
imagearea.setImageResource(arrData.get(position).getImage());
TextView name = (TextView)convertView.findViewById(R.id.name);
name.setText(arrData.get(position).getName());
TextView textarea = (TextView)convertView.findViewById(R.id.textarea);
textarea.setText(arrData.get(position).getName());
return convertView;
}
}
*데이터
public class myData {
private int profileimage;
private int imagearea;
private String name;
private String textarea;
public myData(int profileimage,int imagearea, String name, String textarea){
this.profileimage = profileimage;
this.imagearea = imagearea;
this.name = name;
this.textarea = textarea;
}
public int getImage() {
return profileimage;
}
public int getImage1() {
return imagearea;
}
public String getName() {
return name;
}
public String getTextArea() {
return textarea;
}
}
공지숙지하였습니다
Fragment onAttach() 에서 받아온 getActivity() 를 빨간 줄에 있는 this 에 넣어 주시면 되겠내용~
그리고.. 어짜피 fragment 에서 arrData 생성 하시는거면 onCreateView 에서 하셔도 될것 같은대요~~
Fragment 다 생성 후인 onActivityCreated 에서 작업 하는 이유를 이해가 안가서요~