2017-09-13 3 views
0

안드로이드 스튜디오에서 기호'GET '을 확인할 수 없음 Listitem 클래스에서 공용 문자열을 만들었습니다. 내 안드로이드 스튜디오 버전은 2.3.3이다내가 비록 작동하지 않습니다</p> <blockquote> <p>은 '얻을</p> </blockquote> <p>또한 <code>getHead</code> 및 <code>getDesc</code>을'기호를 확인할 수 없습니다 '라는 오류를 얻을 <code>onBindViewHolder</code>에서 Recyclerview

,
API 레벨 22 안드로이드 5.1,
빌드 도구 버전은 25.0.3입니다.

package com.example.kanase.recyclerviewapp; 

public class Listitem { 
    private String head; 
    private String desc; 

    public Listitem(String head, String desc) { 
     this.head = head; 
     this.desc = desc; 
    } 

    public String getHead() { 
     return head; 
    } 

    public String getDesc() { 
     return desc; 
    } 
} 
+0

'new listItems.get' 왜'new'입니까? 'listItems.getHead()'왜 당신의 listItem ** s **에서'getHead'를 원합니까? –

답변

0

는 안드로이드 스튜디오 버전 또는 API 레벨과는 또는 도구를 구축하는

holder.textViewHead.setText(listItems.get(position).getHead()); 
holder.textViewDesc.setText(listItems.get(position).getDesc()); 
1

Nothing으로

Listitem listitem =new listItems.get(position); 
holder.textViewHead.setText(listItems.getHead()); 
holder.textViewDesc.setText(listItems.getDesc()); 

을 변경해보십시오 :

package com.example.kanase.recyclerviewapp; 

import android.content.Context; 
import android.support.v7.widget.RecyclerView; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.TextView; 

import java.util.List; 

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> { 

private List<Listitem> listItems; 
private Context context; 

public MyAdapter(List<Listitem> listItems, Context context) { 
    this.listItems = listItems; 
    this.context = context; 
} 

@Override 
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
    View v = LayoutInflater.from(parent.getContext()) 
      .inflate(R.layout.list_item , parent ,false); 
    return new ViewHolder(v); 
} 

@Override 
public void onBindViewHolder(ViewHolder holder, int position) { 

    Listitem listitem =new listItems.get(position); 
    holder.textViewHead.setText(listItems.getHead()); 
    holder.textViewDesc.setText(listItems.getDesc()); 
} 

@Override 
public int getItemCount() { 
    return listItems.size(); 
} 

public class ViewHolder extends RecyclerView.ViewHolder{ 
    public TextView textViewHead; 
    public TextView textViewDesc; 

    public ViewHolder(View itemView) { 
     super(itemView); 

     textViewHead =(TextView) itemView.findViewById(R.id.textViewHead); 
     textViewDesc =(TextView) itemView.findViewById(R.id.textViewDesc); 
    } 
} 

은을 ListItem 클래스 번역. 목록의 개별 항목이 아닌 목록 자체에서 getter를 호출하고 있습니다. 그리고 Listitem listitem =new listItems.get(position); 당신은 당신의 객체

@Override 
    public void onBindViewHolder(ViewHolder holder, int position) { 
     Listitem listitem = listItems.get(position); 
     holder.textViewHead.setText(listitem.getHead()); 
     holder.textViewDesc.setText(listitem.getDesc()); 

    } 
+0

대단히 감사합니다 !!! 알았다 :) –

0

당신은 변경할 수 있습니다, 목록

@Override 
    public void onBindViewHolder(ViewHolder holder, int position) { 
     Listitem listitem =new listItems.get(position); 
     holder.textViewHead.setText(listItems.getHead()); 
     holder.textViewDesc.setText(listItems.getDesc()); 

    } 

로 변경 onBindViewHolder에서 항목을 얻을 수 new 키워드를 사용할 필요가 없습니다

Listitem listitem = listItems.get(position); 
holder.textViewHead.setText(listitem.getHead()); 
holder.textViewDesc.setText(listitem.getDesc()); 
0
Listitem listitem =new listItems.get(position); 

new을 제거하십시오.

holder.textViewHead.setText(listItems.getHead()); 
holder.textViewDesc.setText(listItems.getDesc()); 

이것은 오타처럼 보입니다. listItems 대신 listItem을 사용하십시오.