사용자 정의 목록 항목 (확인란, 아이콘 및 일부 텍스트)이있는 SherlockListFragment가 있습니다. 제대로 작동합니다. 이 목록은 사용자 정의 CursorAdapter에서 채워지며 여기에는 Checkbox 이벤트가 트랩되어 있으므로 방향 변경을 통해 데이터를 보존 할 수도 있습니다. 사용자가 하나 이상의 체크 박스를 검사하여 액션 바 항목을 표시 할 때 ListFragment에서 이벤트를 발생시킬 수 있기를 원합니다.CursorAdapter의 ListFragment에서 사용자 지정 리스너 호출 이벤트
이벤트를 승인하기 위해 조각에 인터페이스를 구현했으나 cursoradapter의 체크 박스 onClick listener에서 프래그먼트 이벤트를 발생시키는 구문을 해결할 수 없습니다 - 이벤트는 정상적으로 트리거되지만 리스너는 호출 할 수 없습니다. 사용할 물건을 슬퍼하지 마라.
조각 :
public class ContactListFragment extends SherlockListFragment implements
LoaderManager.LoaderCallbacks<Cursor>
{
public interface ListItemCheckedListener
{
public void OnListItemChecked(int count);
}
private SimpleCursorAdapter mAdapter;
public ListItemCheckedListener checkListener;
public void setListItemListener(ListItemCheckedListener listener)
{
checkListener = listener;
}
<snip>
@Override
public void onActivityCreated(Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);
<snip>
setListItemListener(new ListItemCheckedListener()
{
@Override
public void OnListItemChecked(int count)
{
// Turn on/off Action Bar Item
//if (count > 0)...
}
});
CursorAdapter : 나는 "무엇인가"에 대한 개체의 모든 방법을 시도했지만 꽤 잘 하나를 얻을 수없는 것
public class ContactCursorAdapter extends SimpleCursorAdapter
{
<snip>
@Override
public void bindView(View view, Context context, Cursor cursor)
{
<snip>
CheckBox cBox = (CheckBox)view.findViewById(R.id.checkBox);
final int pos = cursor.getPosition();
cBox.setOnClickListener(new OnClickListener()
{
public void onClick(View view)
{
CheckBox cb = (CheckBox)view.findViewById(R.id.checkBox);
if (cb.isChecked())
{
itemChecked.set(pos, true);
countChecked++;
<something>.checkListener(countChecked); // <----- Umm?
}
else if (!cb.isChecked())
{
itemChecked.set(pos, false);
countChecked--;
<something>.checkListener(countChecked); // <----- ditto
}
}
});
cBox.setChecked(itemChecked.get(pos));
}
.
도움말 ... 제발 ...!
마이크, 체크 박스 수신기를 우리와 공유해 주셔서 감사합니다. 나는 이것을 위해 일할 수 없습니다. ContactListFragment 클래스의 전체 목록을 게시 하시겠습니까? 이것은 제가 실종 된 것을 보여줍니다. 미리 감사드립니다. – moberme
@moberme 전체 onActivityCreated() 메서드를 포함하도록 코드를 업데이트했으며, mAdapter 변수를 클래스 수준 범위 (_adapter)로 옮겼습니다. 전체 클래스는 500 라인을 넘어서는 길이며 다양한 관련성이없는 코드가 있으므로 도움이 될지 의심 스럽습니다. – Mike