【问题标题】:display textview and image view on recyclerView在 recyclerView 上显示 textview 和 image view
【发布时间】:2018-01-04 13:21:27
【问题描述】:

我想在 recyclerview 中同时显示 html 文本和图像,但我猜我做不到。当我习惯了一个按钮时,它就可以工作了。但是我尝试使用 recyclerview 它不起作用。有人帮我吗?同时我在android上也太新手了。 谢谢大家。

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

        itemView.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View position) {
           int mposition = getLayoutPosition();
              callActivities(mposition);
           }

            private void callActivities(int mposition) {
               if (mposition == 0) {
                   image.setImageResource(R.drawable.bb);
                   String htmlAsString = getString(R.string.bb);
                   Spanned htmlAsSpanned = Html.fromHtml(htmlAsString);
                   vh= (TextView) findViewById(R.id.vh);
                   vh.setText(htmlAsSpanned);
                   ((TextView)findViewById(R.id.vh)).setVisibility(View.VISIBLE);  ((TextView)findViewById(R.id.baslik)).setVisibility(View.GONE);
               } else if (mposition == 1){
                   image.setImageResource(R.drawable.db);
                   String htmlAsString = getString(R.string.db);
                   Spanned htmlAsSpanned = Html.fromHtml(htmlAsString);
                   vh= (TextView) findViewById(R.id.vh);
                   vh.setText(htmlAsSpanned);
                   ((TextView)findViewById(R.id.vh)).setVisibility(View.VISIBLE);  ((TextView)findViewById(R.id.baslik)).setVisibility(View.GONE);


               } else if (mposition == 2){
                   image.setImageResource(R.drawable.cb);
                   String htmlAsString = getString(R.string.cb);
                   Spanned htmlAsSpanned = Html.fromHtml(htmlAsString);
                   vh= (TextView) findViewById(R.id.vh);
                   vh.setText(htmlAsSpanned);
                   ((TextView)findViewById(R.id.vh)).setVisibility(View.VISIBLE);  ((TextView)findViewById(R.id.baslik)).setVisibility(View.GONE);
               }      ((TextView)findViewById(R.id.vh)).setVisibility(View.VISIBLE);  ((TextView)findViewById(R.id.baslik)).setVisibility(View.GONE);
               } 
            }
        });

}

}

【问题讨论】:

  • 你介意编辑这个问题,尤其是源代码。
  • getLayoutPosition() 有什么不同?
  • 愿这个帮助你link
  • 我在我的 recyleview 上有三个项目,然后当我单击其中一个时。我想在drawable中显示我的图像并在字符串文件中显示我的html文本。有可能吗?
  • 发布方法getLayoutPosition()

标签: android android-recyclerview textview imageview


【解决方案1】:

让我看看我是否做对了。我使用的这个例子应该对你有所帮助

public class YourAdapter extends RecyclerView.Adapter<YourAdapter.MyViewHolder>{

    class MyViewHolder extends RecyclerView.ViewHolder{
        private ImageView imageView;
        private TextView textview;

        private MyViewHolder(View view){
            super(view);
            //here you will be able to retrieve the views inside each item of the recyclerview
            imageView = view.findViewById(R.id.imageView);
            textView = view.findViewById(R.id.textView);
        }
    }

    public YourAdapter(){//constructor}

    @Override
    public int getItemCount(){
        return 0;
    }

    @Override
    public YourAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType){
        View view= LayoutInflater.from(parent.getContext())
            .inflate(R.layout.layour_for_rv_item, parent, false);

        return new YourAdapter.MyViewHolder(view);
    }

    @Override
    public void onBindViewHolder(YourAdapter.MyViewHolder holder, position){
        // here you link your data 
        // for instance set the text to the textView
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-15
    • 2016-01-21
    • 1970-01-01
    • 2013-06-12
    • 1970-01-01
    相关资源
    最近更新 更多