CardView不显示图像属性

时间:2017-08-16 17:20:40

标签: android android-recyclerview android-cardview cardview

我在使用RecyclerView内的CardView显示图像时遇到问题。它适用于图像是AndroidStudio的图标(例如:ic_launcher)... ANDROID STUDIO:2.3.3 我尝试复制其他代码示例,但我不能这样做,我在java中的中等begginer。谢谢你!

我的代码: activity_main.xml中

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private List<String> values;

// Provide a reference to the views for each data item
// Complex data items may need more than one view per item, and
// you provide access to all the views for a data item in a view holder
public class ViewHolder extends RecyclerView.ViewHolder {
    // each data item is just a string in this case
    public TextView txtHeader;
    public TextView txtFooter;
    public View layout;

    public ViewHolder(View v) {
        super(v);
        layout = v;
        txtHeader = (TextView) v.findViewById(R.id.firstLine);
        txtFooter = (TextView) v.findViewById(R.id.secondLine);
    }
}

public void add(int position, String item) {
    values.add(position, item);
    notifyItemInserted(position);
}

public void remove(int position) {
    values.remove(position);
    notifyItemRemoved(position);
}

// Provide a suitable constructor (depends on the kind of dataset)
public MyAdapter(List<String> myDataset) {
    values = myDataset;
}

// Create new views (invoked by the layout manager)
@Override
public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,
                                               int viewType) {
    // create a new view
    LayoutInflater inflater = LayoutInflater.from(
            parent.getContext());
    View v =
            inflater.inflate(R.layout.row_layout, parent, false);
    // set the view's size, margins, paddings and layout parameters
    ViewHolder vh = new ViewHolder(v);
    return vh;
}

// Replace the contents of a view (invoked by the layout manager)
@Override
public void onBindViewHolder(ViewHolder holder, final int position) {
    // - get element from your dataset at this position
    // - replace the contents of the view with that element
    final String name = values.get(position);
    holder.txtHeader.setText(name);
    holder.txtHeader.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            remove(position);
        }
    });

    holder.txtFooter.setText("Footer: " + name);
}

// Return the size of your dataset (invoked by the layout manager)
@Override
public int getItemCount() {
    return values.size();
}

row_layout

public class MainActivity extends Activity {
private RecyclerView recyclerView;
private RecyclerView.Adapter mAdapter;
private RecyclerView.LayoutManager mLayoutManager;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    recyclerView = (RecyclerView) findViewById(R.id.my_recycler_view);
    // use this setting to
    // improve performance if you know that changes
    // in content do not change the layout size
    // of the RecyclerView
    recyclerView.setHasFixedSize(true);
    // use a linear layout manager
    mLayoutManager = new LinearLayoutManager(this);
    recyclerView.setLayoutManager(mLayoutManager);
    List<String> input = new ArrayList<>();
    for (int i = 0; i < 100; i++) {
        input.add("Test" + i);
    }// define an adapter
    mAdapter = new MyAdapter(input);
    recyclerView.setAdapter(mAdapter);
}

MyAdapter

public SelectList SiteList { get; set; }

MainActivity

var sites = _context.Site.OrderBy(s => s.Name).Select(x => new { Id = x.ID, Value = x.Name });

    var model = new Issue();
    model.SiteList = new SelectList(sites, "Id", "Value");

    return View(model);

0 个答案:

没有答案