2010-07-13 12 views
3

나는 안드로이드 개발을 처음 접했고 프로그래밍에별로 좋지는 않지만 탭마다리스트 뷰가있는 탭 레이아웃으로 작업 중이다. 각 탭에는 자체 java 파일이 있습니다. 현재 컨텍스트 메뉴를 추가하려고 할 때, 내 목록보기의 항목을 클릭 할 때 (길게 클릭하지 않은 경우) 옵션을 선택할 수 있도록 메뉴가 표시됩니다. 지금은 클릭 한 항목의 이름이 표시된 축배 만 보여줍니다.목록보기에서 안드로이드 컨텍스트 메뉴

public class AlbumTab extends ListActivity 
{ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     final String[] CDExplorer_tabs = new String[] {"Client Heirarchy", "Territory", "Sales Credit", "Admin", "General Search"}; 
     super.onCreate(savedInstanceState); 

     setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, CDExplorer_tabs)); 

     ListView lv = getListView(); 
     lv.setTextFilterEnabled(true); 

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

      Toast.makeText(getApplicationContext(), ((TextView) view).getText(), 
       Toast.LENGTH_SHORT).show(); 
     } 
     }); 
    } 

가 나는 팝업와 어떻게 든 연결하려는 각 메뉴에 대한 또 다른 문자열 배열을해야 할 것 : 목록보기 옵션이 현재 지역 문자열 선언을 통해 목록에 추가, 여기 내 탭에의 예입니다 다른 끈에? 또는 어떤 listview 항목을 클릭했는지에 따라 팝업 할 메뉴를 결정하는 if 문을 수행합니까?

+0

컨텍스트 메뉴에 어떤 종류의 선택 사항을 표시 하시겠습니까? – Cristian

+0

각 문자열 (클라이언트 계층 구조, 영역 등)은 여러 선택 사항을 갖습니다. 예를 들어 수정할 수있는 예를 찾고 있습니다. 클라이언트 계층 구조를 클릭하면 메뉴가 열리고 선택할 수 있습니다. 선택하면 다른 페이지로 이동합니다. 따라서 클라이언트 계층 구조를 클릭하면 회사, 이름, 사무실 위치 등과 같은 옵션을 선택할 수 있습니다. – BScarl88

+0

목록에서 각 항목에 대해 다른 옵션이 필요하다는 것을 알고 계십니다. 상황에 맞는 메뉴는 그다지 적합하지 않습니다. – primpap

답변

0

먼저 목록의 각 부분마다 다른 메뉴를 사용하려면 위치에 따라 onItemClick()에 switch 문을 작성하십시오. switch(position){ //cases and such

그러면 중첩 된 ListView 대신 시도하려는 것이 AlertDialog입니다. 목록 추가 검색. 그리고 귀하의 목록에있는 각 직책에 대해이를 구현하십시오. 그런 다음 DialogInterface onClick 함수 안에 다른 스위치를 구현하여 list에서 수행 할 작업을 수행 할 함수를 호출해야합니다 .// alert.show();도 확인하십시오.

원한다면 그건 내 권고 사항입니다. 그러나 중첩 된 목록보기를 원할 경우 더 복잡하지만 가능합니다.

사용자 정의 목록 어댑터를 구현하기 위해 필요한 것은 목록입니다. 또 다른 listview를 보유하고있는 뷰 홀더를 만듭니다. 좋은 예가 here입니다.

꽤 많이해야합니다. 중첩 된 목록 뷰를 수행하기로 결정하면 목록 뷰 내부에서 매우 혼잡하게됩니다.