0
长按卡片,我得到一个菜单,我在onCreateContextMenu()中设置,但执行不进入onMenuItemClick(),我打算根据用户选择的选项做一些操作。
在触摸上下文菜单中的项目时,出现以下错误。
08-15 13:47:31.144 19269-19446/com.sagnikdas.nav d/OpenGLRenderer:带手柄0x8c51cfd0
下面就0x9d250d80(MenuPopupWindow $ MenuDropDownListView)endAllActiveAnimators是代码: 公共类CustomAdapter扩展RecyclerView.Adapter {
public static final String EXTRA_MESSAGE = "com.sagnikdas.nav.CustomAdapter.MESSAGE";
private Context context;
private ArrayList<MyData> my_data;
public CustomAdapter(Context context, ArrayList<MyData> my_data) {
this.context = context;
this.my_data = my_data;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.cardlayout, parent, false);
return new ViewHolder(itemView);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
holder.title.setText(my_data.get(position).getTitle());
if (my_data.get(position).getImageURL() != null || !my_data.get(position).getImageURL().equalsIgnoreCase("")) {
Glide.with(context).load(my_data.get(position).getImageURL()).into(holder.imageView);
} else {
Glide.with(context).load(R.drawable.imageback).into(holder.imageView);//load(my_data.get(position).getImageURL()).into(holder.imageView);
//holder.imageView.setImageDrawable();
}
}
@Override
public int getItemCount() {
return my_data.size();
}
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnCreateContextMenuListener, View.OnClickListener,
MenuItem.OnMenuItemClickListener{
public ImageView imageView;
public TextView title;
public ViewHolder(View itemView) {
super(itemView);
imageView = (ImageView) itemView.findViewById(R.id.image1);
title = (TextView) itemView.findViewById(R.id.title1);
itemView.setOnClickListener(this);
itemView.setOnCreateContextMenuListener(this);
}
@Override
public boolean onMenuItemClick(MenuItem item) {
if(item.getTitle() == "Save"){
Toast.makeText(context, "Item saved", Toast.LENGTH_SHORT).show();
}
else if(item.getTitle()=="Share"){
Toast.makeText(context, "Item Shared", Toast.LENGTH_SHORT).show();
}
return true;
}
@Override
public void onClick(View v) {
Intent intent = new Intent(context, DisplayNewsActivity.class);
String messageUrl = my_data.get(getAdapterPosition()).getUrl();
intent.putExtra(EXTRA_MESSAGE, messageUrl);
context.startActivity(intent);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
menu.setHeaderTitle("Select an Action");
menu.add("Save");
menu.add("Share");
}
}
卡布局文件:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView android:id="@+id/card_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="4dp"
android:orientation="vertical"
card_view:cardElevation="7dp"
card_view:cardCornerRadius="10dp"
card_view:cardBackgroundColor="@color/colorAccent"
xmlns:android="http://schemas.android.com/apk/res/android"
card_view:theme="@style/AppTheme.AppBarOverlay"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:id="@+id/image1"
android:layout_width="match_parent"
android:layout_height="90dp"
android:scaleType="centerCrop" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/title1"
android:layout_below="@+id/image1"
android:textStyle="bold"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:text="Title section"
android:textColor="#ffff"
android:textSize="13sp"/>
</LinearLayout>
</android.support.v7.widget.CardView>
这是一个'DEBUG'消息,而不是'ERROR'。 – Reaper
如果代码没有问题,为什么它不工作?我看不到吐司消息。收割者 – sagnikDas