3

내 범주 목록에 대한 사용자 지정 어댑터를 만들려고합니다. 어떤 이유로 인해 inflate하려고 할 때 category_item 레이아웃에 액세스 할 수 없습니다. - R.layout.category_item이 resource 내가 내 category_item.xml 레이아웃에 액세스 할 수 있어야합니다 말한다내 ArrayAdapter에서 R.layout.mylayoutname에 액세스 할 수 없습니다.

public class CategoryAdapter extends ArrayAdapter<Category> { 

    LayoutInflater mInflater; 
    List<Category> list; 

public CategoryAdapter(Context context, int resource, int textViewResourceId, List<Category> objects) { 
    super(context, resource, textViewResourceId, objects); 

    mInflater = LayoutInflater.from(context); 
    list = objects; 
} 

public View getView(int position, View convertView, ViewGroup parent) { 

    final ViewHolder holder; 

    if(convertView==null){ 

     convertView=mInflater.inflate(***resource***, null); 
     holder = new ViewHolder(); 

    } 

    return convertView; 
} 

// Declaring new class ViewHolder 
class ViewHolder{ 
    TextView category_name; 
} 

: 여기에 내 코드입니다. 그러나 어떤 이유로 목록에 표시되지 않지만 액세스 할 수는 없습니다. 사실 나는 목록에서 내 레이아웃을 보지 못합니다.

왜 그런 일이 발생하며 어떻게 해결 될 수 있습니까?

+2

Activity 클래스에서 adapter를 호출 할 때 R.java가 가져온 –

+1

add here 행이 올바른지 확인하십시오. – Sajmon

+0

@StefandeBruijn 네, 명백하게 저는 잘못된 R 클래스를 가져 왔습니다. 어떻게 된 일인지 모르세요 ... 고마워요! 당신이 처음으로 내 질문에 대답 했으므로 대답으로 게시하여 받아 들일 수 있습니까? 다시 한번 고마워요! – Igal

답변

12

packagename.R 파일을 가져 오면 작동합니다. android.R을 수입했을 가능성이 있습니다. 자원이 응용 프로그램 패키지에 존재하므로이를 수정하면 제대로 작동합니다.

android.R은 sdk 리소스를 참조합니다.

+0

고마워요! 네, 그게 문제였습니다. – Igal

+0

예, 우리는 때때로 사소한 문제에 집착 할 수 있습니다 !! –

3

그것은 당신이 당신의 패키지 자원 com.yourpackagename.R 수입 android.R

이 있는지 확인 안드로이드 리소스 패키지를 가져올 가능성이있다. 이렇게하면 문제가 해결됩니다.

+0

예, 정말 고마워요! – Igal

2

코드를 확인하십시오. 코드에 android.R을 가져 왔다고 생각합니다. 그것을 제거하십시오.

+0

대단히 고맙습니다. 문제가 해결되었습니다! – Igal

1

프로젝트 -> 클린 이것은 R 파일을 재생성하며 이것도 작동합니다.

관련 문제