2017-12-11 6 views
0

私は、ListSourceAdapter.javaクラスを持っているonBindViewイムでgetUrl()をonBindViewHolderに取得することはできませんか?

class ListSourceViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { 

    ItemClickListener itemClickListener; 
    TextView source_title; 
    CircleImageView source_image; 

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

     source_title = (TextView) itemView.findViewById(R.id.source_name); 
     source_image = (CircleImageView) itemView.findViewById(R.id.source_image); 
    } 

    @Override 
    public void onClick(View v) { 

     itemClickListener.onClick(v, getAdapterPosition(), false); 
    } 
} 

public class ListSourceAdapter extends RecyclerView.Adapter<ListSourceViewHolder> { 

    private Context context; 
    private WebSite webSite; 

    public ListSourceAdapter(Context context, WebSite webSite) { 
     this.context = context; 
     this.webSite = webSite; 
    } 

    @Override 
    public ListSourceViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     LayoutInflater inflater = LayoutInflater.from(parent.getContext()); 
     View itemView = inflater.inflate(R.layout.source_layout, parent, false); 

     return new ListSourceViewHolder(itemView); 
    } 

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

     StringBuilder iconBetterAPI = new StringBuilder("https://icons.better-idea.org/allicons.json?url="); 
     iconBetterAPI.append(webSite.getSources().get(position).getUrl()); 
    } 

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

getUrl()を使用しようとするが、それは

以下のような

public class WebSite { 

    private String status; 
    private List<Source> sources; 

    public WebSite() { 
    } 

    public WebSite(String status, List<Source> sources) { 
     this.status = status; 
     this.sources = sources; 
    } 

    public String getStatus() { 
     return status; 
    } 

    public void setStatus(String status) { 
     this.status = status; 
    } 

    public List<Source> getSources() { 
     return sources; 
    } 

    public void setSources(List<Source> sources) { 
     this.sources = sources; 
    } 
} 

Source.javaファイル以下のような方法

WebSite.javaモデルクラスを解決できないと言います

class UrlsToLogs { 

    private String small, medium, large; 

    public String getSmall() { 
     return small; 
    } 

    public void setSmall(String small) { 
     this.small = small; 
    } 

    public String getMedium() { 
     return medium; 
    } 

    public void setMedium(String medium) { 
     this.medium = medium; 
    } 

    public String getLarge() { 
     return large; 
    } 

    public void setLarge(String large) { 
     this.large = large; 
    } 
} 

public class Source { 

    private String id, name, description, url, category, language, country; 
    private UrlsToLogs urlsToLogs; 
    private List<String> sortByAvailable; 

    public Source() { 

    } 

    public Source(String id, String name, String description, String url, String category, String language, String country, UrlsToLogs urlsToLogs, List<String> sortByAvailable) { 
     this.id = id; 
     this.name = name; 
     this.description = description; 
     this.url = url; 
     this.category = category; 
     this.language = language; 
     this.country = country; 
     this.urlsToLogs = urlsToLogs; 
     this.sortByAvailable = sortByAvailable; 
    } 

    public String getId() { 
     return id; 
    } 

    public void setId(String id) { 
     this.id = id; 
    } 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public String getDescription() { 
     return description; 
    } 

    public void setDescription(String description) { 
     this.description = description; 
    } 

    public String getUrl() { 
     return url; 
    } 

    public void setUrl(String url) { 
     this.url = url; 
    } 

    public String getCategory() { 
     return category; 
    } 

    public void setCategory(String category) { 
     this.category = category; 
    } 

    public String getLanguage() { 
     return language; 
    } 

    public void setLanguage(String language) { 
     this.language = language; 
    } 

    public String getCountry() { 
     return country; 
    } 

    public void setCountry(String country) { 
     this.country = country; 
    } 

    public UrlsToLogs getUrlsToLogs() { 
     return urlsToLogs; 
    } 

    public void setUrlsToLogs(UrlsToLogs urlsToLogs) { 
     this.urlsToLogs = urlsToLogs; 
    } 

    public List<String> getSortByAvailable() { 
     return sortByAvailable; 
    } 

    public void setSortByAvailable(List<String> sortByAvailable) { 
     this.sortByAvailable = sortByAvailable; 
    } 
} 
私は getUrl()にアクセスすることができない理由

public interface ItemClickListener { 

    void onClick(View view, int position, boolean isLongClick); 
} 

以下のような

public interface IconBetterIdeaService { 

    @GET 
    Call<IconBetterIdea> getIconUrl(@Url String url); 

} 

ItemClickListnerインタフェース以下のような

IconBetterIdeaServiceインターフェースは、私は私のコードで間違って何をしましたか?

enter image description here

+0

は、それが私のスタジオ –

+0

上記ええすべてで罰金ウォーキングbecase私は別々のクラスに言ったようにあなたが別のクラスを作成しました – HemalHerath

+0

その作業私のスタジオで罰金 –

答えて

1

public class Source { 

    private String id, name, description, url, category, language, country; 
    private UrlsToLogs urlsToLogs; 
    private List<String> sortByAvailable; 

    public Source() { 

    } 

    public Source(String id, String name, String description, String url, String category, String language, String country, UrlsToLogs urlsToLogs, List<String> sortByAvailable) { 
     this.id = id; 
     this.name = name; 
     this.description = description; 
     this.url = url; 
     this.category = category; 
     this.language = language; 
     this.country = country; 
     this.urlsToLogs = urlsToLogs; 
     this.sortByAvailable = sortByAvailable; 
    } 

    public String getId() { 
     return id; 
    } 

    public void setId(String id) { 
     this.id = id; 
    } 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public String getDescription() { 
     return description; 
    } 

    public void setDescription(String description) { 
     this.description = description; 
    } 

    public String getUrl() { 
     return url; 
    } 

    public void setUrl(String url) { 
     this.url = url; 
    } 

    public String getCategory() { 
     return category; 
    } 

    public void setCategory(String category) { 
     this.category = category; 
    } 

    public String getLanguage() { 
     return language; 
    } 

    public void setLanguage(String language) { 
     this.language = language; 
    } 

    public String getCountry() { 
     return country; 
    } 

    public void setCountry(String country) { 
     this.country = country; 
    } 

    public UrlsToLogs getUrlsToLogs() { 
     return urlsToLogs; 
    } 

    public void setUrlsToLogs(UrlsToLogs urlsToLogs) { 
     this.urlsToLogs = urlsToLogs; 
    } 

    public List<String> getSortByAvailable() { 
     return sortByAvailable; 
    } 

    public void setSortByAvailable(List<String> sortByAvailable) { 
     this.sortByAvailable = sortByAvailable; 
    } 
} 

よりも、この

public class WebSite { 

    private String status; 
    private List<Source> sources; 

    public WebSite() { 
    } 

    public WebSite(String status, List<Source> sources) { 
     this.status = status; 
     this.sources = sources; 
    } 

    public String getStatus() { 
     return status; 
    } 

    public void setStatus(String status) { 
     this.status = status; 
    } 

    public List<Source> getSources() { 
     return sources; 
    } 

    public void setSources(List<Source> sources) { 
     this.sources = sources; 
    } 
} 

よう

public class UrlsToLogs { 
    private String small, medium, large; 

    public String getSmall() { 
     return small; 
    } 

    public void setSmall(String small) { 
     this.small = small; 
    } 

    public String getMedium() { 
     return medium; 
    } 

    public void setMedium(String medium) { 
     this.medium = medium; 
    } 

    public String getLarge() { 
     return large; 
    } 

    public void setLarge(String large) { 
     this.large = large; 
    } 

} 

よりも、別のクラスを作成し、これを試してみてくださいOUTP UT

enter image description here

Clear-Rebuild and also check the imports

+0

それは私のために働いていませんNilu – HemalHerath

+0

@HemalHerath try ** Clear-Rebiuld **また輸入品をチェックしてください –

+1

おかげで私は今PCを再起動します:-(イムさんはトラブルのため申し訳ありません – HemalHerath

関連する問題