현재 ListView를 가지고 작업하고 있습니다.
ListView에서 들어가는 행들은 커스텀 뷰로서 RelativeLayout 안에 버튼과 텍스트뷰를 하나 배치했습니다.
저는 메인 엑티비티에서 각 행들을 처리 하기 위해서 findViewById와 LayoutInflater.inflate() 둘 중에 무엇을 사용해야 되는지 헷갈렸고
그래서 알아본 바로는 findViewById는 onCreate에서 처리한 UI뷰에 들어가는 뷰들만이 호출할수 있더군요.
그런데 저는 UI뷰에는 ListView가 배치 되었으나 각 행을 정의한 RelativeLayout은 당연히 따로 xml로 만들어 놔서 findViewById로는 불러오지 못했습니다.
그래서 inflater를 이용할려고 했는데 어플이 종료되버리더군요...
어떻게 하면 각 행에 대한 정보인 RelativeLayout을 불러와서 처리할수 있을까요?
저는 프로그래밍초보인데
inflate하는 부분의 사용예(코드)를 좀 보여주시면 안될까요..?
아무리 해보아도 잘 안되서..ㅋ
이건 제가 해보았지만 안된부분..
layout = new LinearLayout(mLvSNS.getContext());
LayoutInflater inflater = (LayoutInflater)mLvSNS.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
//LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = (View)inflater.inflate(R.layout.list_view_row_mypage, layout);
//View v = (View)inflater.inflate(R.layout.list_view_row_mypage, null);
ImageView iv = (ImageView)v.findViewById(R.id.list_view_row_profile_thumbnail);
iv.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "ser", Toast.LENGTH_SHORT).show();
quickAction.show(v);
}
});




layout 폴더에 xml 형태로 저장되어 있는 resource 를 불러 올땐 inflater 를 사용하시면 되고.
xml 안에 android:id 형태로 이름을 지어준 view 들은 findViewById 형태로 가져 올 수 있는겁니다.
즉 RelativeLayout 으로 되어 있는 xml 을 inflater 를 하시면 layout 이 생기고 layout 을 통해서
layout.findViewById 를 하시면 layout 안에 있는 child view 에 접근이 가능하게 되는거죠..