如何为每个Gridview显示“复制和共享”按钮?

时间:2018-10-07 08:32:28

标签: android gridview

我正在使用底部导航抽屉开发新闻应用程序,并且在运行仅显示一个Gridview的代码复制和共享功能时实现了复制和共享功能。

在我实现了商品的news_items.xml文件下面

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:orientation="vertical">

        <ImageView
            android:id="@+id/article_Image"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="50dp"
            android:text="TextView" />

        <TextView
            android:id="@+id/article_Author"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="40dp"
            android:text="TextView"
            android:textSize="16sp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/article_Title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="50dp"
            android:text="TextView"
            android:textSize="20sp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/article_Date"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="40dp"
            android:text="TextView"
            android:textSize="14sp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/article_Description"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginBottom="20dp"
            android:text="TextView"
            android:textSize="14sp" />

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:orientation="horizontal">

            <ImageButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/ic_copy"
                android:maxLines="1"
                android:text="textview1" />

            <Space
                android:layout_width="30dp"
                android:layout_height="15dp" />

            <ImageButton
                android:id="@+id/share_button"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="0"
                android:background="@drawable/ic_share"
                android:text="textview2" />

        </LinearLayout>

    </LinearLayout>

</android.support.v7.widget.CardView>

位于androidStudio [1]中editorpanel的[screen] [1]下面:   https://i.stack.imgur.com/RnQuJ.png

在具有复制和共享功能的NewsAdapter类下面

public class NewsAdapter extends RecyclerView.Adapter<NewsAdapter.NewsViewHolder> {

    public static final String urlKey = "urlKey";
    Context context;
    private final List<Article> articleList;

    public NewsAdapter(List<Article> articleList) {

        this.articleList = articleList;

    }


    @NonNull
    @Override
    public NewsViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View itemView = LayoutInflater.
                from(viewGroup.getContext()).
                inflate(R.layout.news_item, viewGroup, false);
        return new NewsViewHolder(itemView);
    }

    @Override
    public void onBindViewHolder(@NonNull NewsViewHolder newsViewHolder, final int i) {
        final Article article = articleList.get(i);
        SimpleDateFormat input = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
        SimpleDateFormat output = new SimpleDateFormat("dd/MM/yyyy");

        Date d = new Date();
            try {
                d = input.parse(article.getPublishedAt());
            } catch (ParseException e) {
                e.printStackTrace();
            } catch (java.text.ParseException e) {
                e.printStackTrace();
            }


        String formatted = output.format(d);

        newsViewHolder.articleAuthor.setText(article.getAuthor());
        newsViewHolder.articleTitle.setText(article.getTitle());
        newsViewHolder.articleDescription.setText(article.getDescription());
        newsViewHolder.articleDate.setText(formatted);
        //newsViewHolder.articleDate.setText(article.getPublishedAt());
        Picasso.get().load(article.getUrlToImage()).into(newsViewHolder.articleImage);

        newsViewHolder.shareButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
                sharingIntent.setType("text/plain");
                String articleDescription = article.getDescription();
                String articleTitle = article.getTitle();
                sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, articleDescription);
                sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, articleTitle);
                v.getContext().startActivity((Intent.createChooser(sharingIntent, "Share using")));
            }
        });
        newsViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(view.getContext(), DetailActivity.class);
//start the activity from the view/context

                intent.putExtra("urlKey", article.getUrl());
                view.getContext().startActivity(intent);
            }
        });

    }




    @Override
    public int getItemCount() {

        return articleList.size();
    }



    public final class NewsViewHolder extends RecyclerView.ViewHolder {
        // TextView articleAuthor, articleTitle, articleDescription, articleUrl;
        //  ImageView articleImage;

        @BindView(R.id.article_Image)
        ImageView articleImage;
        @BindView(R.id.article_Author)
        TextView articleAuthor;
        @BindView(R.id.article_Title)
        TextView articleTitle;

        @BindView(R.id.article_Description)
        TextView articleDescription;
        @BindView(R.id.article_Date)
        TextView articleDate;
        @BindView(R.id.share_button)
        ImageButton shareButton;



        public NewsViewHolder(View itemView) {
            super(itemView);
            ButterKnife.bind(this, itemView);

            if (context != null) {
                Typeface typeface = ResourcesCompat.getFont(context, R.font.roboto_black);
                articleTitle.setTypeface(typeface);

            }

        }

    }
}

0 个答案:

没有答案