小编Izy*_*orr的帖子

在旋转和背面恢复MapView的状态

背景

我有一个更大的应用程序,我在使用新的Google Maps API时遇到了一些问题.我尝试用不同的问题描述它,但由于它看起来太复杂,我决定开始一个新项目,尽可能简单并尝试重现问题.所以这就是.

情况

我正在使用Fragments并希望放入MapView内部.我不想用MapFragment.我准备的示例项目可能不是很漂亮,但我试图让它尽可能简单,它必须包含原始应用程序中的一些元素(再次简化).我有一个Activity和我的习惯Fragment,MapView以编程方式添加.将Map包含一些点/ Markers.点击一个之后MarkerInfoWindow被示出并点击它引起下Fragment所示(与正被replace()在内容功能).

问题

我有两个问题:

  1. 当显示Mapwith 时,Markers屏幕旋转会导致Class not found when unmarshalling我的自定义MyMapPoint类错误- 我不知道为什么以及它意味着什么.

  2. 我点击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

26
推荐指数
1
解决办法
3万
查看次数

设置从适配器检查ListView项目

我有一个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)

android listview checkedtextview

17
推荐指数
1
解决办法
2万
查看次数