0

私はこのチュートリアルに従っており、慎重に指示に従いましたが、いくつかの問題に遭遇しました. 私の ItemView コンストラクターでは、cardview と photo は「解決できないシンボル」です。

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) を何度も何度も実行するだけですか?

4

1 に答える 1

0

シンボルの部分を理解したかもしれないと思います。android:id="@+id/photo" の代わりに android:id="photo" を使用しなかったと思います。違いはわかりませんが、参考になったと思います。

于 2016-12-07T19:54:19.943 に答える