2016-03-30 22 views
1

私はListViewにボタンがあり、そのボタンをクリックすると私のレイアウトで定義されたコンテキストメニューが表示されます。コンテキストメニューをクリックして表示するリストビューアアダプタ

の問題はcustomerlistadapterで認識されません。 コンテキストメニューのメソッドonCreateContextMenu,onContextItemSelectedは、ListViewを示すアクティビティで上書きされます。

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    ViewHolder holder; 
    if (convertView == null) { 
     convertView = mInflater.inflate(R.layout.customforumview, null); 
     holder = new ViewHolder(); 
     holder.txtTitle = (TextView) 
     convertView.findViewById(R.id.forumtitle); 
     holder.txtCategory = (TextView) 
     convertView.findViewById(R.id.forumcategory); 
     holder.menubutton = (ImageButton) 
     convertView.findViewById(R.id.menuselect); 

     holder.menubutton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       //context menu to be called here 
      } 
     }); 
     convertView.setTag(holder); 
    } else { 
     holder = (ViewHolder) convertView.getTag(); 
    } 
    holder.txtTitle.setText(searchArrayList.get(position).getTitle()); 
    holder.txtCategory.setText(searchArrayList.get(position).getCategory()); 

    return convertView; 
} 

答えて

2

あなたの活動に正しくお使いのcontextMenuを登録している場合は、あなたとあなたのcontextMenuを呼び出すことができます:あなたがあなたの活動に呼び出された要素にアクセスする場合は

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    ... 
    holder.menubutton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      //context menu to be called here 
      parent.showContextMenuForChild(v); 
     } 
    ... 
}); 

は次のようにあなたのonCreateContextMenuに追加します@Lior Iluz answer

に詳細はこの

@Override 
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { 
    super.onCreateContextMenu(menu, v, menuInfo); 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.context_menu, menu); 

    AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)menuInfo; 
    long itemID = info.position; 
    menu.setHeaderTitle("lior" + itemID); 
} 

参照してください。 10

これが役立つことを願っています!

+0

魔法のように完璧に機能しました:) ありがとう – aasawa

+0

解決済みとして質問にマークしてください;) –

関連する問題