小编Dav*_*ave的帖子

如何从Android中的PreferenceActivity获取SharedPreferences?

我正在使用PreferenceActivity为我的应用程序显示一些设置.我通过xml文件膨胀设置,以便我的onCreate(和完整的类方法)如下所示:

public class FooActivity extends PreferenceActivity {
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        addPreferencesFromResource(R.xml.preference);
    }
}
Run Code Online (Sandbox Code Playgroud)

PreferenceActivity PreferenceFragment的javadoc 说明了这一点

当用户与它们交互时,这些首选项将自动保存到SharedPreferences.要检索此活动中的首选项层次结构将使用的SharedPreferences实例,请使用与此活动相同的包中的上下文调用getDefaultSharedPreferences(android.content.Context).

但是我如何在另一个Activity中获得SharedPreference的名称?我只能打电话

getSharedPreferences(name, mode)
Run Code Online (Sandbox Code Playgroud)

在其他活动中但我需要PreferenceActivity使用的SharedPreference的名称.名称是什么或如何检索它?

android preferences preferenceactivity sharedpreferences

364
推荐指数
3
解决办法
31万
查看次数

由于许多叠加,Android地图性能很差?

我的android应用程序中有一个地图,显示了许多标记(~20-50).但是当我尝试滚动/缩放时,应用程序表现非常差(在谷歌Android地图中我搜索了比萨饼的样本,并且还发现了大约20-50个结果,并且在缩放/滚动时我没有注意到任何特定的性能问题地图).

这是我的(伪)代码:

onCreate() {
    ....
    drawable = this.getResources().getDrawable(R.drawable.marker1);
    itemizedOverlay = new MyItemizedOverlay(drawable,mapView);
    ...
    callWebServiceToRetrieveData();

    createMarkers();
}

createMarkers(){
    for(elem:bigList){
        GeoPoint geoPoint = new GeoPoint((int)(elem.getLat()*1000000), (int) (elem.getLon()*1000000));
        OverlayItem overlayItem = new OverlayItem(geoPoint, elem.getName(), elem.getData());
        itemizedOverlay.addOverlay(overlayItem);

        mapOverlays.add(itemizedOverlay);
}
mapView.invalidate();
Run Code Online (Sandbox Code Playgroud)

}

MyItemizedOverlay.addOverlay看起来像这样:

public void addOverlay(OverlayItem overlay) {
    m_overlays.add(overlay);
    populate();
}
Run Code Online (Sandbox Code Playgroud)

performance android overlay map

5
推荐指数
2
解决办法
5514
查看次数