Android : onContextItemSelected is not called in Fragment

on Sunday, March 22, 2015


I'm trying use the popup menu in long press in ListView. I can call the popup menu, but when i click in the option of this popup menu the onContextItemSelected() not works.


Here is my code:



package com.pa.homeautomationblank.fragments;

import android.app.Fragment;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.Toast;

import com.pa.homeautomationblank.R;
import com.pa.homeautomationblank.listeners.OnItemCentraisLongClickListener;
import com.pa.homeautomationblank.listeners.OnReconhecerCentraisClickListener;
import com.pa.homeautomationblank.model.Central;
import com.pa.homeautomationblank.model.dao.CentralDAO;

public class CentraisFragment extends Fragment {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
View view = inflater.inflate(R.layout.fragment_centrais, container,false);

RelativeLayout rLay = (RelativeLayout) view.findViewById(R.id.layout_centrais_bottom);
Button btnReconhecerCentrais = (Button) rLay.findViewById(R.id.btnReconhecerCentrais);

btnReconhecerCentrais.setOnClickListener(new OnReconhecerCentraisClickListener());

CentralDAO cDAO = new CentralDAO(view.getContext());
ArrayAdapter<Central> adapter = new ArrayAdapter<Central>(view.getContext(), android.R.layout.simple_list_item_1 , cDAO.selectAll());

rLay = (RelativeLayout) view.findViewById(R.id.layout_centrais_conteudo);
ListView lv = (ListView) rLay.findViewById(R.id.lvCentrais);
lv.setAdapter(adapter);
lv.setOnItemLongClickListener(new OnItemCentraisLongClickListener());
registerForContextMenu(lv);

return (view);
}

@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo){
super.onCreateContextMenu(menu, v, menuInfo);
if (v.getId()==R.id.lvCentrais){
menu.setHeaderTitle(R.string.operacoes);
String[] menuitems = getResources().getStringArray(R.array.menu_acoes_central);
for (int i=0;i<menuitems.length;i++){
menu.add(Menu.NONE,i,i,menuitems[i]);
}
}
}

@Override
public boolean onContextItemSelected(MenuItem item){

int menuindex = item.getItemId();

switch (menuindex) {
case 0:
Toast.makeText(getView().getContext(), "Rename", Toast.LENGTH_SHORT).show();
break;
case 1:
Toast.makeText(getView().getContext(), "Remove", Toast.LENGTH_SHORT).show();
break;

default:
Toast.makeText(getView().getContext(), "invalid option!", Toast.LENGTH_SHORT).show();
break;
}


return super.onContextItemSelected(item);
}

}


I put breakpoint in the method but the event is not called.


Thanks in advance!


0 comments:

Post a Comment