는 I는 ListFragment
의 ListView
표시해야 처음 세 네 개의 필드를 각각 갖는 MyClass
클래스의 객체 (즉 firstItem
, secondItem
, thirdItem
및 fourthItem
)의 ArrayList
있다. 다음과 같이이를 위해 는, 나는 ArrayAdapter
확장, 그 getView()
방법을 재정의 :Android onListItemClick : 클릭 한 ListView 항목에 필드가 표시되는 개체를 가져 오는 방법은 무엇입니까?
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view;
if (convertView == null) {
view = layoutInflater.inflate(
R.layout.myFragment_listview_item, parent, false);
} else {
view = convertView;
}
MyClass myClassItem = getItem(position);//******But this method is inside Adapter
((TextView) view
.findViewById(R.id.myclassListFragment_ListViewItem1))
.setText(myClassItem.firstItem);
((TextView) view
.findViewById(R.id.myclassListFragment_ListViewItem2))
.setText(myClassItem.secondItem);
((TextView) view
.findViewById(R.id.myclassListFragment_ListViewItem3))
.setText(myClassItem.thirdItem);
return view;
}
을하지만 사용자는 ListView
에서 항목, 다른 필드 표시되는 개체에 대한 fourthItem
필드를 클릭 할 때 클릭 된 목록보기 항목은 Fragment
(detailsFragment
)으로 표시되어야합니다 (TextView
). , 다음하지만 문제는 내가 ListView
항목을 해당 MyClass
객체 누구를위한 fourthItem
필드의 값을 얻는 방법으로 클릭했던 것을 그대로
이 프로그램은 ListView
에서 항목의 클릭에 새로운 조각을 추가 사용자, TextView
에 detailsFragment
에 설정할 수 있도록 하시겠습니까? MyClass
개체를 포함 List
가 LoaderManager.LoaderCallBacks
의 onLoadFinished()
메소드로 전달되는 것을 의미
ListFragment
구현 LoaderManager.LoaderCallBacks<List<MyClass>>
, : 제 ListFragment
언급에서
@Override
public void onLoadFinished(Loader<List<MyClass>> loader, List<MyClass> dataList) {
customArrayListAdapter.setData(dataList);
if (isResumed()) {setListShown(true);} else {setListShownNoAnimation(true);}
}
우리 onListItemClick()
방법이 새 detailsFragment
이 fourthItem
으로 표시되도록 인스턴스화합니다.