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> 
+0

这是一个'DEBUG'消息,而不是'ERROR'。 – Reaper

+0

如果代码没有问题,为什么它不工作?我看不到吐司消息。收割者 – sagnikDas

回答

0

您需要的菜单项与对应的菜单项点击收听连接,就像这样:

@Override 
     public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { 
      menu.setHeaderTitle("Select an Action"); 
      menu.add("Save").setOnMenuItemClickListener(this); 
      menu.add("Share").setOnMenuItemClickListener(this); 
     } 

或在你的活动添加onContextItemSelected()方法,并从那里onMenuItemClick()把代码。

怎么样OpenGL消息,它可能与Glide图像加载有关。尝试聆听图像错误。

相关问题