Hier ist meine MusicItem Klasse:RecyclerView: Kein Adapter angeschlossen Skipping Layout
public class MusicItem {
int id;
String producer;
String farsi_name;
String photo;
int rate;
String date_published;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getProducer() {
return producer;
}
public void setProducer(String producer) {
this.producer = producer;
}
public String getFarsi_name() {
return farsi_name;
}
public void setFarsi_name(String farsi_name) {
this.farsi_name = farsi_name;
}
public String getPhoto() {
return photo;
}
public void setPhoto(String photo) {
this.photo = photo;
}
public int getRate() {
return rate;
}
public void setRate(int rate) {
this.rate = rate;
}
public String getDate_published() {
return date_published;
}
public void setDate_published(String date_published) {
this.date_published = date_published;
}
}
hier ist meine MusicFeed Klasse:
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button=(Button) findViewById(R.id.button);
}
@Override
public void onClick(View view) {
Intent intent=new Intent(MainActivity.this, MusicPage.class);
startActivity(intent);
}
}
und hier:
public class MusicFeed {
List<MusicItem> list;
int counter;
public MusicFeed() {
list=new Vector<MusicItem>();
}
public void addAll(MusicItem... musicItem){
for (int i=0; i<musicItem.length; i++){
list.add(musicItem[i]);
counter++;
}
}
public int getCounter(){
return counter;
}
public MusicItem getItem(int position){
return list.get(position);
}
}
hier mein MainActivity ist ist meine MusicPage:
public class MusicPage extends AppCompatActivity {
RecyclerView recyclerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_music_page);
recyclerView=(RecyclerView) findViewById(R.id.rec);
RecyclerView.LayoutManager layoutManager=new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false);
recyclerView.setLayoutManager(layoutManager);
async as=new async(new MusicFeed());
as.execute();
}
public class VVHH extends RecyclerView.ViewHolder{
TextView farsi_name;
TextView producer;
TextView date_published;
TextView rate;
ImageView image;
public VVHH(View itemView) {
super(itemView);
farsi_name=(TextView) itemView.findViewById(R.id.farsiname);
producer=(TextView) itemView.findViewById(R.id.producer);
date_published=(TextView) itemView.findViewById(R.id.datepublished);
rate=(TextView) itemView.findViewById(R.id.rate);
image=(ImageView) itemView.findViewById(R.id.image);
}
}
public class MyAdapter extends RecyclerView.Adapter<VVHH>{
MusicFeed feed;
public MyAdapter(MusicFeed feed) {
this.feed = feed;
}
@Override
public VVHH onCreateViewHolder(ViewGroup parent, int viewType) {
View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.row, parent, false);
return new VVHH(view);
}
@Override
public void onBindViewHolder(VVHH holder, int position) {
MusicItem musicitem=feed.getItem(position);
holder.farsi_name.setText(musicitem.getFarsi_name());
holder.producer.setText(musicitem.getProducer());
holder.date_published.setText(musicitem.getDate_published());
holder.rate.setText(Integer.toString(musicitem.getRate()));
Glide.with(MusicPage.this).load(musicitem.getPhoto()).into(holder.image);
}
@Override
public int getItemCount() {
return feed.getCounter();
}
}
public class async extends android.os.AsyncTask<Void, Void, MusicFeed>{
MusicFeed musicFeed;
public async(MusicFeed musicFeed) {
this.musicFeed = musicFeed;
}
@Override
protected MusicFeed doInBackground(Void... voids) {
String URL = "http://79.175.176.229:8060/mcirbt/0/homepage/?format=json";
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder().url(URL).build();
okhttp3.Call call = client.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
final String JsonData = response.body().string();
try {
parseJson(JsonData);
} catch (JSONException e) {
e.printStackTrace();
}
}
private void parseJson(String jsonData) throws JSONException {
JSONObject jsonObject = new JSONObject(jsonData);
JSONArray jsonArray = jsonObject.getJSONArray(Keys.KEY_POPULAR_ALBUMS);
final String url = "http://79.175.176.229:8060";
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject1 = jsonArray.getJSONObject(i);
MusicItem musicItem = new MusicItem();
musicItem.setRate(jsonObject1.getInt(Keys.KEY_RATE));
musicItem.setDate_published(jsonObject1.getString(Keys.KEY_DATE_PUBLISHED));
musicItem.setFarsi_name(jsonObject1.getString(Keys.KEY_FARSI_NAME));
musicItem.setProducer(jsonObject1.getString(Keys.KEY_PRODUCER));
musicItem.setPhoto(url + jsonObject1.getString(Keys.KEY_PHOTO));
musicFeed.addAll(musicItem);
Log.d("000000000000000000000", jsonObject1.getString(Keys.KEY_PRODUCER));
}
}
});
return musicFeed;
}
@Override
protected void onPostExecute(MusicFeed musicFeed) {
recyclerView.setAdapter(new MyAdapter(musicFeed));
}
}
}
ich habe auch den Adapter in der onPosterexecute-Methode angeschlossen aber es sagt mir kein Adapter angeschlossen und es zeigt nichts an!
Versuchen Sie, den Adapter direkt in der onCreate, dann in der OnPostExecute aktualisieren des Adapters Datensatz und rufen „notifyDataSetChanged()“ – FishStix