monchyrcg
14/03/12, 09:36:46
Bueno estoy haciendo pruebas para una aplicación que me estoy currando para mi cuñado. Se trata de un maps donde leo un xml, en el xml hay diversas ciudades con su nombre,provincia y pagina web, una vez leo el xml en cada ciudad pongo un marcador. Este marcador es clickable, y cuando pulso sobre el me aparece en un dialog(de momento muy cutre) la información. Lo que no me funciona es que cuando pulso en la pagina web(se trata de un TextView en color azul) no soy capaz de que me vaya a la pagina web.
Esto lo he hecho otras veces, la única diferencia que encuentro, es que mi clase principal era una Activity no un MapActivity, es decir he hecho lo mismo. En otro programa tenia una clase X que heredaba de Activity en una parte del programa creaba un dialog donde habia un web que pulsando en ella me iba a la página. Ahora no me funciona. Adjunto también el Manifest.
Muchas gracias, un saludo.
public class PruebaMapa extends MapActivity {
/** Called when the activity is first created. */
private List<Sitio> listaDeSitios;
private List<Overlay> mapOverlays;
private Drawable drawable;
private GeoPoint point;
private OverlayItem item;
private HelloItemizedOverlay itemOverlay;
private Dialog dialog;
private TextView txtCiudad,txtLink,txtProvincia;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
MapView mapView = (MapView) findViewById(R.id.mapa);
mapView.setBuiltInZoomControls(true);
mapOverlays = mapView.getOverlays();
drawable = this.getResources().getDrawable(R.drawable.marcado r_google_maps);
}
public void onResume(){
..............
.....................
...................
}
private Dialog hacerDialogo(String nombre,String ciudad,String link, String provincia){
dialog = new Dialog(this);
dialog.setContentView(R.layout.dialogo);
dialog.setTitle(nombre);
txtCiudad = (TextView) dialog.findViewById(R.id.txtCiudad);
txtCiudad.setText(ciudad);
txtProvincia = (TextView) dialog.findViewById(R.id.txtProvincia);
txtProvincia.setText(provincia);
txtLink = (TextView) dialog.findViewById(R.id.txtLink);
txtLink.setText(link);
txtLink.setTextColor(Color.BLUE);
txtLink.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
Uri uri = Uri.parse(txtLink.getText().toString().trim());
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(uri);
startActivity(i);
dialog.dismiss();
}
});
return dialog;
}
}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="mapas.Monchy"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="10" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<uses-library android:name="com.google.android.maps"/>
<activity
android:name=".PruebaMapa"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Esto lo he hecho otras veces, la única diferencia que encuentro, es que mi clase principal era una Activity no un MapActivity, es decir he hecho lo mismo. En otro programa tenia una clase X que heredaba de Activity en una parte del programa creaba un dialog donde habia un web que pulsando en ella me iba a la página. Ahora no me funciona. Adjunto también el Manifest.
Muchas gracias, un saludo.
public class PruebaMapa extends MapActivity {
/** Called when the activity is first created. */
private List<Sitio> listaDeSitios;
private List<Overlay> mapOverlays;
private Drawable drawable;
private GeoPoint point;
private OverlayItem item;
private HelloItemizedOverlay itemOverlay;
private Dialog dialog;
private TextView txtCiudad,txtLink,txtProvincia;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
MapView mapView = (MapView) findViewById(R.id.mapa);
mapView.setBuiltInZoomControls(true);
mapOverlays = mapView.getOverlays();
drawable = this.getResources().getDrawable(R.drawable.marcado r_google_maps);
}
public void onResume(){
..............
.....................
...................
}
private Dialog hacerDialogo(String nombre,String ciudad,String link, String provincia){
dialog = new Dialog(this);
dialog.setContentView(R.layout.dialogo);
dialog.setTitle(nombre);
txtCiudad = (TextView) dialog.findViewById(R.id.txtCiudad);
txtCiudad.setText(ciudad);
txtProvincia = (TextView) dialog.findViewById(R.id.txtProvincia);
txtProvincia.setText(provincia);
txtLink = (TextView) dialog.findViewById(R.id.txtLink);
txtLink.setText(link);
txtLink.setTextColor(Color.BLUE);
txtLink.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
Uri uri = Uri.parse(txtLink.getText().toString().trim());
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(uri);
startActivity(i);
dialog.dismiss();
}
});
return dialog;
}
}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="mapas.Monchy"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="10" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<uses-library android:name="com.google.android.maps"/>
<activity
android:name=".PruebaMapa"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>