背景
我有一个更大的应用程序,我在使用新的Google Maps API时遇到了一些问题.我尝试用不同的问题描述它,但由于它看起来太复杂,我决定开始一个新项目,尽可能简单并尝试重现问题.所以这就是.
情况
我正在使用Fragments并希望放入MapView内部.我不想用MapFragment.我准备的示例项目可能不是很漂亮,但我试图让它尽可能简单,它必须包含原始应用程序中的一些元素(再次简化).我有一个Activity和我的习惯Fragment,MapView以编程方式添加.将Map包含一些点/ Markers.点击一个之后Marker的InfoWindow被示出并点击它引起下Fragment所示(与正被replace()在内容功能).
问题
我有两个问题:
当显示Mapwith 时,Markers屏幕旋转会导致Class not found when unmarshalling我的自定义MyMapPoint类错误- 我不知道为什么以及它意味着什么.
我点击Marker然后InfoWindow.在此之后我按下硬件后退按钮.现在我可以看到Map但没有Markers并且集中在0,0一点.
代码
主要活动
public class MainActivity extends FragmentActivity {
private ArrayList<MyMapPoint> mPoints = new ArrayList<MyMapPoint>();
@Override
protected void onCreate(Bundle …Run Code Online (Sandbox Code Playgroud) android android-fragments android-mapview android-maps-v2 fragment-lifecycle
我有一个ListView,显示2种项目.其中一种包含CheckedTextView.作为一个适配器,我正在使用自定义适配器扩展ArrayAdapter,其数据结构包含有关内部已检查/未检查状态的信息.
有些项目被标记为已选中(在我的数据结构中),所以我当然希望在创建ListView时标记复选框.我尝试使用CheckedTextView的setChecked()方法在适配器中的getView()方法上执行此操作,但它不起作用.我发现它应该在ListView级别上使用setItemChecked()来完成它并且它确实有效,但它对我来说没有意义,因为为了使它工作,我必须循环活动的onCreate()中的所有项目调用setItemChecked()对于那些被选中 项目列表可能很长,只选择了少数项目,这是浪费.
为什么在getView()中调用setChecked()不起作用?有没有更好的方法(我是一个Android新手).
下面是我检查的项目布局和适配器.
布局:
<?xml version="1.0" encoding="utf-8"?>
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:gravity="center_vertical"
android:textAppearance="@style/listViewItemText"
android:checkMark="?android:attr/listChoiceIndicatorMultiple"
android:paddingLeft="6dp"
android:paddingRight="6dp"
/>
Run Code Online (Sandbox Code Playgroud)
适配器:
package com.melog.re.droid.search;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.os.Parcel;
import android.os.Parcelable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.CheckedTextView;
import android.widget.TextView;
import com.melog.re.droid.core.R;
import com.melog.re.droid.search.MultiCriterionValue.MultiCriterionSingleValue;
import com.melog.re.droid.search.MultiListAdapter.MultiChoiceItem;
public class MultiListAdapter extends ArrayAdapter<MultiChoiceItem> {
private static final int VIEW_TYPES_COUNT = 2;
public static final int VIEW_TYPE_GROUP = 0;
public static final int VIEW_TYPE_ITEM = 1;
private LayoutInflater …Run Code Online (Sandbox Code Playgroud)