2014-11-14 2 views
-1

태블릿에 대한 내 응용 프로그램의 안드로이드 레이아웃을위한 두 개의 조각이 있습니다. 두 가지 모두 Listview입니다. 내장 ID는 android:id="@android:id/list"입니다. 둘 다. 지금 내 활동 자바 파일에서 참조를하려고 할 때, 나는 어떻게 그렇게 할 것인지 혼란 스럽다.ID 안의 안드로이드에 대한 ID를 작성하십시오. @android : id/list, CREATING AMBIGUITY


중요 POINT : 내 활동이 참조를 복용하고

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.activity_notifications); 
    notificationListView2=(ListView)findViewById(android.R.id.list); //from first fragment 
    notificationListView=(ListView)findViewById(android.R.id.list);//from second fragment 

enter image description here


중요 POINT : 내 활동이 참조를 복용하고

답변

0

추가 한 각 조각에서 onCreateView 메서드를 호출합니다. 주어진 메서드에서 조각의 개체를 참조 할 수 있습니다. 즉, ListView 항목에 대한 참조를 저장할 필요가 있습니다.

ListView 항목에 액세스하는 데 도움이 필요하면 onCreateView 메서드에서 할당 한 변수를 가져 오는 방법을 만드십시오.

그래서 각 조각에서 다음을 수행 할 수있을 것입니다 :

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    Log.i("Right", "onCreateView()"); 
    View v = inflater.inflate(R.layout.right, container, false); 
    ListView lv_fragmentXXX = (ListView) view.findViewById(android.R.id.list); //Where xxx is an identifier for each listview in each fragment 
} 
+0

내 활동에 참조가 있습니다. – nobalG

+0

그런 다음 각 조각에서 각 ListView를 조사하기 위해 조각에 메소드를 작성하십시오. 명확하지 않은 경우 질문을 명확히하기위한 코드를 추가하십시오. – zozelfelfo

+0

어쨌든 추가 된 방법이 깨끗해 보입니다. 코드 – nobalG

1

Fragments를 들어, onCreateView는 레이아웃이 팽창 될 방법이다. 이 인플레이터는 View 객체를 반환하므로이 뷰 객체에 findViewById(android.R.id.list)을 호출하십시오.

예 :

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.fragment_layout_xml, container, false); 
    rootView.findViewById(android.R.id.list); 
    ..... 
    .... any other code .... 
    ..... 
    return rootView; 
} 

이렇게하면 올바른 목록보기에 액세스 할 수 있습니다.

관련 문제