2013-08-24 3 views
0

나는 안드로이드에 응용 프로그램이있다.ContextMenu Button back 안드로이드 사용 안함 클릭

이 응용 프로그램에는이 이벤트가있는 ListView가 있습니다.

ListView titulos = (ListView)findViewById(R.id.lv_titulos); 
    titulos.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, 
           int position, long id) { 
      position_item_selected = position; 
      switch (position){ 
       case 0: 
        titulo = getString(R.string.Brands); 
        menu_contextual = rellenar_menu_contextual(brands); 
        break; 
       case 1: 
        titulo = getString(R.string.Collections); 
        menu_contextual = rellenar_menu_contextual(collections); 
        break; 
       case 2: 
        titulo = getString(R.string.References); 
        menu_contextual = rellenar_menu_contextual(references); 
        break; 
       case 3: 
        titulo = getString(R.string.Colours); 
        menu_contextual = rellenar_menu_contextual(colours); 
        break; 
       case 4: 
        titulo = getString(R.string.Sizes); 
        menu_contextual = rellenar_menu_contextual(sizes); 
        break; 
      } 
      registerForContextMenu(view); 
      openContextMenu(view); 
      unregisterForContextMenu(view); 
     } 
    }); 

유 목록보기에서 항목을 클릭 한 다음, 보여되어 상황에 맞는 메뉴 경우 U 경우, 목록보기에서 항목을 클릭하고 표시하려면 contextmenu에 대한 항목을 클릭 만하면이 잘 작동 뒤로 버튼을 클릭하고보기로 돌아 가면 목록보기의 항목에서 다시 클릭 할 수 없습니다.

다른 항목을 클릭하고 컨텍스트 메뉴에서 항목을 클릭하면 모든 항목이 다시 정상적으로 작동합니다.

@Override 
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { 
    super.onCreateContextMenu(menu, v, menuInfo); 
    menu.setHeaderTitle(titulo); 
    for (String aMenu_contextual : menu_contextual) menu.add(0, v.getId(), 0, aMenu_contextual); 
} 

@Override 
public boolean onContextItemSelected(MenuItem item) { 
    AdapterView.AdapterContextMenuInfo info = 
      (AdapterView.AdapterContextMenuInfo) item.getMenuInfo(); 
    String[][] values; 
    switch (position_item_selected){ 
     case 0: 
      values = new String[][] {{getString(R.string.Brand),item.toString()}}; 
      brandSelec = item.toString(); 
      collections(brands.get(item.toString()).toString()); 
      break; 
     (...) 
     default: 
      values = new String[][] {}; 
    } 
    final StableArrayAdapter adapter = new StableArrayAdapter(SearchArticle.this,values); 
    ListView titulos = (ListView)findViewById(R.id.lv_titulos); 
    titulos.setAdapter(adapter); 
    return true; 
} 

왜 목록보기에서 항목 블록 u는 상황에 맞는 메뉴에서 버튼을 다시 누르면?

죄송합니다. 저의 영어 실력이 좋지 않습니다. 감사합니다.

답변

0

이 코드는 문제가있는 부분이다 :

registerForContextMenu(view); 
openContextMenu(view); 
unregisterForContextMenu(view); 

만 등록 취소 후 등록 아니지만, 목록에서 항목을 클릭 할 때 당신은 그것을 할.

난 당신이 여기까지 노력을 이해하지 않는, 그러나 이것은 올바른 방법입니다 : 그냥가 작동하는 방법처럼,

... onCreate() { 
... 
registerForContextMenu(listView); 

이 방법, 항목에 긴 클릭 컨텍스트 메뉴를 표시 할 다른 앱.