才接触java和android,很多不懂的地方请教,如果文的问题太浅显,大家莫笑啊做了一个小软件,一个tabactivity下面有两个tab页,一个是mapactivity,用来存放一个mapview,其中下面有一个在丢图上标注位置的函数,代码如下
public void MarkPosition(Location location){
MapView mapview;
ZoomControls zoomcontrol;
LinearLayout linearlayout;
List<Overlay> mapoverlays;
Drawable drawable;
GeoItemizedOverlay itemizedoverlay;
mapview=(MapView)findViewById(R.id.mapview);
zoomcontrol=(ZoomControls)mapview.getZoomControls();
linearlayout=(LinearLayout)findViewById(R.id.zoomview);
linearlayout.addView(zoomcontrol);
MapController mapcontroller=mapview.getController();
mapcontroller.setZoom(12);
mapoverlays=mapview.getOverlays();
drawable=this.getResources().getDrawable(R.drawable.position);
itemizedoverlay=new GeoItemizedOverlay(drawable);
//GeoPoint point=new GeoPoint(31767241, 119945000);
GeoPoint point=new GeoPoint((int)Math.floor(location.getAltitude()*1E6), (int)Math.floor(location.getLongitude()*1E6));
OverlayItem overlayitem=new OverlayItem(point, "", "");
itemizedoverlay.AddOverlay(overlayitem);
mapoverlays.add(itemizedoverlay);
mapcontroller.setCenter(point);
mapview.setSatellite(true);
mapview.setTraffic(true);
mapview.setStreetView(true);
}另外一个是普通的activity,里面用来存放gps信息,我在这个gpsactivity里面设置的函数用来获取gps位置信息,现在得到了位置信息,请问怎么在mapview里面更新这个位置啊,直接用mapactivity.MarkPosition()不行,把这个函数设置成static说是不支持mapview=(MapView)findViewById(R.id.mapview);这个方法,请教大家,怎么才能把这个位置传递给这个mapview
public void MarkPosition(Location location){
MapView mapview;
ZoomControls zoomcontrol;
LinearLayout linearlayout;
List<Overlay> mapoverlays;
Drawable drawable;
GeoItemizedOverlay itemizedoverlay;
mapview=(MapView)findViewById(R.id.mapview);
zoomcontrol=(ZoomControls)mapview.getZoomControls();
linearlayout=(LinearLayout)findViewById(R.id.zoomview);
linearlayout.addView(zoomcontrol);
MapController mapcontroller=mapview.getController();
mapcontroller.setZoom(12);
mapoverlays=mapview.getOverlays();
drawable=this.getResources().getDrawable(R.drawable.position);
itemizedoverlay=new GeoItemizedOverlay(drawable);
//GeoPoint point=new GeoPoint(31767241, 119945000);
GeoPoint point=new GeoPoint((int)Math.floor(location.getAltitude()*1E6), (int)Math.floor(location.getLongitude()*1E6));
OverlayItem overlayitem=new OverlayItem(point, "", "");
itemizedoverlay.AddOverlay(overlayitem);
mapoverlays.add(itemizedoverlay);
mapcontroller.setCenter(point);
mapview.setSatellite(true);
mapview.setTraffic(true);
mapview.setStreetView(true);
}另外一个是普通的activity,里面用来存放gps信息,我在这个gpsactivity里面设置的函数用来获取gps位置信息,现在得到了位置信息,请问怎么在mapview里面更新这个位置啊,直接用mapactivity.MarkPosition()不行,把这个函数设置成static说是不支持mapview=(MapView)findViewById(R.id.mapview);这个方法,请教大家,怎么才能把这个位置传递给这个mapview
解决方案 »
- 要为一个门户网站开发一个Android客户端 类似于网易新闻这样的,是怎么个思路?
- android 系统中的浏览器能否直接播放在线实时视频?
- google map 开发的一个小问题,setCenter()
- 怎么访问activity类里的非静态变量或方法
- 请教一个android上的java 变量命名问题
- adk命令无法使用,请问怎么回事
- 怎么实现类似360手机助手下载管理的界面
- 求从图片上识别出文字的源码
- 关于Camera的YUV数据问题
- Smartisan OS 状态栏左侧通知如何实现的分类?
- android 修改文件属性
- 长时间停留在:calculating requirements and dependencies
偏好设置
SharedPreferences
也可以用Intent获取数据
当然都要onresume里面应用
2、或者你把每次获得的gps位置信息临时存放起来,每次进入mapactivity时度上次存放的gps位置信息
intent.setClass(this,getResultActivityClass());
Bundle mBundle = new Bundle();
mBundle.putString("data", record.toString());//压入数据
intent.putExtras(mBundle);
startActivity(intent);
参数少的话 就可以 使用Intent.putExtras来 传递 。。在另外一边 先获得Intent在使用getExtras取出来。。
一个主activity
两个标签activity
实现tab_2给tab_1传递值
代码:public class Test_1 extends TabActivity {
TabHost tabHost;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//获得tabHost
tabHost = this.getTabHost();
//绑定tabHost和view
LayoutInflater.from(this).inflate(R.layout.main,
tabHost.getTabContentView(),true);
Intent intentTab1 = new Intent(this,Tab_1.class);
Intent intentTab2 = new Intent(this,Tab_2.class);
//新建标签
tabHost.addTab(tabHost.newTabSpec("显示便签")
.setIndicator("显示标签")
.setContent(intentTab1));
tabHost.addTab(tabHost.newTabSpec("输入便签")
.setIndicator("输入标签")
.setContent(intentTab2));
}
}
public class Tab_1 extends Activity{
TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.tab1);
tv = (TextView)findViewById(R.id.textView1);
}
//获得数据
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
SharedPreferences sharedPreferences =
getSharedPreferences("data", MODE_PRIVATE);
String data = sharedPreferences.getString("data", "");
tv.setText(data);
}
}
public class Tab_2 extends Activity{
EditText et;
Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.tab2);
//获得控件控制权
et = (EditText)findViewById(R.id.editText1);
btn = (Button)findViewById(R.id.button1);
btn.setOnClickListener(new View.OnClickListener() {
//给按钮加监听,当点击时,保存信息到SharedPreferences中
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(v == btn)
{
SharedPreferences sharedPreferences =
getSharedPreferences("data", MODE_PRIVATE);
sharedPreferences.edit()
.putString("data", et.getText().toString())
.commit();
}
}
});
}
}有问题再说
设置一个标识位来判断是否有数据
如果为真,就。,处理完把标识位变为假
如果为假,就。。