才接触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
解决方案 »
- 用Basic开发Android的应用.Basic4Android.
- SharedPreferences中的ListPreference怎么输出Int?
- 菜鸟询问一个androidmanifest中applicationlabel的问题
- 关于新浪微博平台sdk的问题!!
- 《2012Sundy高级课程更新》Android深入浅出系列课程文章列表
- 有没有人熟悉android系统自带launcher应用工程的阿???
- 做360浮动菜单点击后的二级菜单的问题
- android 串口通信
- 安卓的NDK和SDK能实现的效果相同吗?
- 求大侠指导
- 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();
}
}
});
}
}有问题再说
设置一个标识位来判断是否有数据
如果为真,就。,处理完把标识位变为假
如果为假,就。。