0

SimpleCursorAdapter를 사용하여 listview를 만들었습니다. 각 행에 여러 개의보기 (4 개의 텍스트 뷰)가 포함되어 있습니다. 클릭 할 때 textview에 하나의 상황에 맞는 메뉴를 추가하고 싶습니다.SimpleCursorAdapter onClick의 하위보기 (Textview)에 상황에 맞는 메뉴 추가

textview 중 하나에 컨텍스트 메뉴를 추가했지만 textview의 onclick은 항상 마지막 행의 데이터 (마지막 행의 textview 데이터)를 제공합니다.

이 문제는 어떻게 해결할 수 있습니까?

아래 코드에서 내가 텍스트에 사용자가 클릭 내가 컨텍스트 메뉴에 등록 할 때 텍스트 뷰에 온 클릭 리스너를 설정하고있다 :

다음은 내 코드입니다.

public View getView(int position, View convertView, ViewGroup parent) { address = (TextView) row.findViewById(R.id.host_address); 
        address = (TextView) row.findViewById(R.id.host_address); 
        address.setOnClickListener(new View.OnClickListener() { 
         @Override 
         public void onClick(View v) {       
          registerForContextMenu(address); 
          openContextMenu(address); 
          unregisterForContextMenu(address); 
         } 
        }); } 

상황에 맞는 메뉴 :

public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { 
     super.onCreateContextMenu(menu, v, menuInfo); 

     menu.setHeaderTitle(address.getText()); 
     menu.add(0, OPEN_MAP, 0, "Open in maps"); 
     menu.add(0, COPY_ADDRESS, 1, "Copy"); 
    } 

참고 : - ** 위의 코드에서 ** address.getText() 항상 마지막 행의 주소를 반환.

+0

위의 기능과 관련된 코드를 게시하십시오. –

+0

아무 일도 일어나지 않을 수 있습니다! –

+0

@RameshR 코드가 추가되었습니다. – Joe

답변

0

ToolbarActionBar 또는 독립형으로 사용할 수 있습니다. 독립 실행 형 모드는 Toolbar을 작업 표시 줄로 설정하지 않으므로 간단한보기로 사용할 수 있으므로 원하는 위치에 배치 할 수 있습니다.

독립 실행 형 모드에서는 툴바에 콘텐츠/동작을 수동으로 입력해야합니다. 예를 들어 동작을 표시하려면 메뉴를 부 풀릴 필요가 있습니다.

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.blah); 

    Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar); 

    // Set an OnMenuItemClickListener to handle menu item clicks 
    toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener(){ 
     @Override 
     public boolean onMenuItemClick(MenuItem item) { 
      // Handle the menu item 
      return true; 
     } 
    }); 

    // Inflate a menu to be displayed in the toolbar 
    toolbar.inflateMenu(R.menu.your_toolbar_menu); 
} 
+0

이 정보는 내가 찾던 정보가 아닙니다. 내 정보를 확인하십시오. – Joe