2011-07-18 4 views
0

이미지 단추와 텍스트보기가있는 사용자 지정 어댑터가있는 목록보기가 있습니다.항목을 클릭하면 listview에서 고유 한 요소를 선택하십시오.

이미지 버튼을 눌렀을 때 상황 별 메뉴를 열고 텍스트보기를 누르면 다른 상황에 맞는 메뉴를 열려고합니다.

어떻게하면됩니까 ??

이 내 OnClickListener를

lv.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

      if (id == view.findViewById(R.id.label).getId()) //label press 
      { 
       TextView text = (TextView) view.findViewById(R.id.label); 
       registerForContextMenu(text); 
       openContextMenu(text); 
      } 
      else //imageButton press 
      { 
       ImageButton ib= (ImageButton) view.findViewById(R.id.image); 
       registerForContextMenu(ib); 
       openContextMenu(ib); 
      } 
     } 
     }); 

답변

0

보기에 OnCreateContextMenuListener 추가입니다 :

text.setOnCreateContextMenuListener(new OnCreateContextMenuListener() { 
      @Override 
      public void onCreateContextMenu(ContextMenu menu, View view, ContextMenuInfo info) { 
       menu.setHeaderTitle("Text context menu"); 
       menu.add(ContextMenu.NONE, MY_OPTION_CONTEXT_MENU, ContextMenu.NONE, "Some option"); 
      } 
     }); 

활동보기에서 :

@Override 
public boolean onContextItemSelected(MenuItem item) { 
    AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); 

    switch(item.getItemId()) { 
     case MY_OPTION_CONTEXT_MENU: 
      TextView v = (TextView) info.targetView; 
      // more code here 
      return true; 
    } 

    return super.onContextItemSelected(item); 
} 
+0

감사합니다! 또한 customAdapter를 사용하여 "getView"에서 뷰를 생성 할 때 리스너를 추가 할 수 있습니다. – thenosic

0
public View getView(int position, View convertView, 
          ViewGroup parent) { 
     LayoutInflater inflater=getLayoutInflater(); 
     View row=inflater.inflate(R.layout.row_listview_with_icon, parent, false); 
     TextView label=(TextView)row.findViewById(R.id.label); 

     ImageView icon=(ImageView)row.findViewById(R.id.icon); 

     final int m_pos = position; 
        label.setOnClickListener(new OnClickListener() { 

      public void onClick(View v) { 
       ...    
      } 
     }); 
     icon.setOnClickListener(new OnClickListener() { 

      public void onClick(View v) { 
       ...    
      } 
     }); 

     return(row); 
    } 
관련 문제