Im this tutorialの後に続き、指示に従っていますが、いくつかの問題がありました。私ItemViewコンストラクタでは、cardviewと写真は、 "解決できないシンボル" です:2シンボルを分解してRecyclerView/CardViewで要素を追加する
ItemViewHolder(View itemView) {
super(itemView);
cv = (CardView)itemView.findViewById(R.id.cardview);
title = (TextView)itemView.findViewById(R.id.title);
cover = (ImageView)itemView.findViewById(R.id.photo);
}
は、ここで全体のアダプタクラスです:
package com.example.aaronpries.myfinal;
import android.content.Context;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.List;
public class ItemAdapter extends RecyclerView.Adapter<ItemAdapter.ItemViewHolder>{
private Context context;
private List<Item> books;
ItemAdapter(List<Item> books){
this.books = books;
}
@Override
public int getItemCount() {
return books.size();
}
@Override
public ItemViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.activity_cal, viewGroup, false);
ItemViewHolder bvh = new ItemViewHolder(v);
return bvh;
}
@Override
public void onBindViewHolder(ItemViewHolder bookViewHolder, int i) {
bookViewHolder.title.setText(books.get(i).text);
bookViewHolder.cover.setImageResource(books.get(i).imgID);
}
@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
super.onAttachedToRecyclerView(recyclerView);
}
public static class ItemViewHolder extends RecyclerView.ViewHolder {
CardView cv;
TextView title;
ImageView cover;
ItemViewHolder(View itemView) {
super(itemView);
cv = (CardView)itemView.findViewById(R.id.cardview);
title = (TextView)itemView.findViewById(R.id.title);
cover = (ImageView)itemView.findViewById(R.id.photo);
}
}
}
これは私のアイテムクラスです:
package com.example.aaronpries.myfinal;
import java.io.Serializable;
public class Item implements Serializable{
public int id;
public String text;
public int imgID;
}
ここにはrecyclerview xmlがあります:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/recyclerview"
/>
</LinearLayout>
活動のxml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent"
android:padding="16dp"
>
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/cardview"
>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp"
>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/photo"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginRight="16dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/title"
android:layout_toRightOf="@+id/photo"
android:layout_alignParentTop="true"
android:textSize="30sp"
/>
</RelativeLayout>
</android.support.v7.widget.CardView>
</LinearLayout>
そして最後にActivityクラス:
public class CalActivity extends AppCompatActivity {
String[] events = {"A","B","C","D","E","F","G"};
Context context = this;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cal);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
RecyclerView recycler = (RecyclerView)findViewById(R.id.recyclerview);
LinearLayoutManager layoutManager = new LinearLayoutManager(context);
recycler.setLayoutManager(layoutManager);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
}
}
私はこのRecyclerViewの作業を取得する方法についていくつかの異なるチュートリアルに従うことをしようとしているが、それらのほとんどドン最後に完成したコードを表示しています。私はとても新しいので、いつかは苦労します。 RecyclerViewに画像とタイトルのテキストを追加したいので、それについての提案があればそれを感謝します。私はデータを入力するためにItem.add( "text"、imgID)を何度も何度も繰り返していますか?
'@ + id/photo'はレイアウト内で' R.id.photo'や参照を見つけることを可能にします。 –
でも、 'layout_toRightOf =" @ + id/photo "'があるときは、 'layout_toRightOf =" @ id/photo "'になるはずです。いいえプラス –