1
현재 아이 이름 목록을 표시하고 이름 옆에 어댑터 클래스가있어 학교에 도착한 시간을 표시합니다. 가로로 회전하면 시간 값이 손실되는 문제가 있습니다.가로 모드의 조각 활동에서보기 소유자에 액세스하는 방법
어댑터 클래스는 같은입니다 -
public class MyAdapter extends CursorAdapter {
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
View view = layoutInflater.inflate(R.layout.children_item, parent, false);
// Cache the views using the view holder pattern
ViewHolder viewHolder = new ViewHolder();
viewHolder.childname = (TextView) view.findViewById(R.id.child_name);
viewHolder.time = (TextView) view.findViewById(R.id.child_time);
view.setTag(viewHolder);
return view;
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
ViewHolder viewHolder = (ViewHolder) view.getTag();
Child child = children.createStopFromCursor(cursor);
viewHolder.time.setText(strText);
viewHolder.time.setTextColor(0xff000000);
viewHolder.time.setTextSize(17);
viewHolder.time.setVisibility(View.VISIBLE);
viewHolder.time.setBackgroundColor(nColor);
viewHolder.time.setPadding(25,25,25,25);
view.invalidate();
}
}
나는대로이 MainActivity 태그에서 매니페스트입니다 delare -
MyFragment 활동에android:configChanges="orientation|screenSize"
, 내가 가진 -
public class MyFragment extends Fragment {
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
//How do I access viewHolder or TextView "time" here
}
}
}
방법 가로 모드에서 값을 업데이트하려면 viewHolder 또는 TextView "time"에 액세스 하시겠습니까?
configChanges를 추가 한 이래로 풍경에 세로 레이아웃을 추가하고 있지만 시간 값은 손실되지 않습니다. 풍경에 대한 다른 레이아웃이 있는데 이는 configChanges = screenSize로 인해 표시되지 않습니다. 어떻게 이것을 극복 할 수 있습니까? – Mark023
세로 및 가로 레이아웃이 서로 다른 경우 configChanges를 전혀 사용할 수 없습니다. 그러나 setRetainInstance를 사용하면 조각이 방향 변경시 데이터와 함께 보존됩니다. –
setRetainInstance (true)를 시도했지만 아직 개발되지 않았습니다. – Mark023