![]() |
|
Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
«
Tema Anterior
|
Siguiente tema
»
|
Herramientas |
#1
|
Por qué esto no me funciona??
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. Código:
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.marcador_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; } } Código:
<?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> Última edición por monchyrcg Día 19/03/12 a las 11:32:54 |
|
#2
|
Nadie me dice nada acerca de esto. Me he dado cuenta que la llamada al intent la hago dentro del view dialog tiene que ser ese el problema. Pero como lo añado al manifest. Alguna idea???
La cosa es que si llamo a un intento así de esta manera si me funciona: Intent a = new Intent(this, otraClase.class) ; startActivity(a) ; OtraClase.class la declaro en el manifest. En fin alguna idea. Muchas gracias Enviado desde mi LG-P970 usando Tapatalk |
#3
|
||||
|
||||
Como dices al principio, puede ser que el problema sea que usas un MapActivity en lugar de un Activity, las clases que heredan de Activity están pensadas para un cometido muy específico, así que redefinen cosas que con una Activity normal funcionaría pero en un subclase de esta no funciona al estar redefinido.
Por ejemplo yo he tenido muchos problemas con una ListActivity, así que decidí pasarme al método básico y definirme un ListView dentro del Activity y tratarlo a mano, puede que te esté ocurriendo lo mismo, intenta trabajar un MapView directamente sobre un Activity en lugar de usar un MapActivity. |
#4
|
Muchas gracias kriogeN pero no se puede crear un mapView en una Activity obligatoriamente ha de ser sobre un MapActivity!!!!
|
#5
|
||||
|
||||
Es verdad, como nunca lo había usado no lo había visto, solo puede recibir un Inflate desde un MapActivity. Pues entonces no se cual puede ser el problema.
|
#6
|
Joder seguro que es una tontería, AYUDARME PLEASE!!!!!!!!!!!!!
|
#7
|
Pues si era una tontería y además bastante grande. Todo estaba bien, se puede llamar a la actividad desde el MapActivity sin problema.
Era yo, que no realizaba bien la llamada; el texto que cogía era el problema, la url estaba mal formada. En mi aplicación por estética aparecen las url sin el protocolo (sin el http://) por lo tanto la llamada al intent no estaba bien formado. Al hacer: Código:
Uri uri = Uri.parse(txtLink.getText().toString().trim()); Intent i = new Intent(Intent.ACTION_VIEW); i.setData(uri); startActivity(i); Código:
Uri uri = Uri.parse("http://"+txtLink.getText().toString().trim()); Intent i = new Intent(Intent.ACTION_VIEW); i.setData(uri); startActivity(i); |
Gracias de parte de: | ||
Respuesta |
![]() |
||||||
|
«
Tema Anterior
|
Siguiente tema
»
|
|
Hora actual: 02:49:08 (GMT +2)
HTCMania: líderes desde el 2007