我正在使用底部导航抽屉开发新闻应用程序,并且在运行仅显示一个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);
}
}
}
}