2011-11-03 2 views
1

Android 용 애플리케이션을 만들고 있습니다. 나는 Activity를 가지고 있으며 그 안에는 두 개의 fragmentList가있다. DPAD를 왼쪽이나 오른쪽으로 움직일 때 나는 아래의 Fragmentlist에서 당신이 어떤 위치에 있는지를 제어하려고합니다. 예를 들어, DPAD에서 Siguiende Press 8 번 위치의 첫 번째 조각 목록의 4 번 위치로 이동하려고합니다.GoogleTV : 두 개의 단편 목록 간의 키보드 Dpad 변경

에 한번 더 설명하기 : 키보드 처리가 매우 중요하므로

나는, Google TV에서에 대한 응용 프로그램을 만드는 중이라서. 나는 아이템을 가진 두 개의 fragmentlist를 가지고있다. OnItemSelectedListener 항목에 포커스가있을 때도 누르도록 사용하고 있습니다. fragmentlist1이 위치를 변경하면 fragmentList2가 변경됩니다. FragmentList2의 Item 3에있을 때 키 펄스를 남겼습니다. 조각 Lis1의 항목 1로 돌아가고 싶습니다. 기본값은 fragmentList1에 대한 항목 3입니다.

추가 된 조각의 코드 1.

@Override 
public void onListItemClick(ListView l, View v, int position, long id) { 
    listView.setItemChecked(position, true); 
    listView.setSelection(position); 
    changeItem(position); 
} 

@Override 
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
    listView.setItemChecked(position, true); 
    listView.setSelection(position); 
    changeItem(position); 
} 

public void changeItem(int position){ 

    FragmentManager fragmentManager = getFragmentManager(); 
    FragmentTransaction transaction = fragmentManager.beginTransaction();  
    Fragment1 f1 = new Fragment1(); 
    Fragment2 f2 = new Fragment2(); 

    switch (position) { 
    case 0: 
     transaction.replace(R.id.second_fragment, f1); 
     transaction.addToBackStack(null); 
     transaction.commit(); 
     break; 
    case 1: 
     transaction.replace(R.id.second_fragment, f2); 
     transaction.addToBackStack(null); 
     transaction.commit(); 
     break; 
    default: 
     break; 
    }  
} 

것 nextfocusleft Fragmentlists과 같은?

미리 감사드립니다.

+1

직관적 인 행동은 dpad의 오른쪽 목록에서 왼쪽 목록의 세 번째 항목에서 오른쪽 목록의 세 번째 항목으로 이동하는 것입니다. 내가 왜 당신의 이전 글에서 유스 케이스를 설명하기 위해 언급했는지. –

답변

0

액티비티에서는 FragmentList1의 위치에 대한 멤버 변수를 만들고 기본값 또는 특수 비즈니스 로직을 처리 할 수있는 getter 함수로 래핑합니다.

그런 다음 onKeyUp 수신기를 만들고 FragmentList2에서 LEFT를 감지하면 가로 채고 필요에 따라 수정합니다.