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


 
Herramientas
  #1  
Viejo 14/03/12, 09:36:46
Avatar de monchyrcg
monchyrcg monchyrcg no está en línea
Miembro del foro
Mensajes: 384
 
Fecha de registro: sep 2011
Localización: Cartagena
Mensajes: 384
Modelo de smartphone: LG Optimus Black
Versión de ROM: v10d
Tu operador: Orange
Mencionado: 0 comentarios
Tagged: 0 hilos
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
Responder Con Cita


  #2  
Viejo 16/03/12, 09:58:11
Avatar de monchyrcg
monchyrcg monchyrcg no está en línea
Miembro del foro
Mensajes: 384
 
Fecha de registro: sep 2011
Localización: Cartagena
Mensajes: 384
Modelo de smartphone: LG Optimus Black
Versión de ROM: v10d
Tu operador: Orange
Mencionado: 0 comentarios
Tagged: 0 hilos
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
Responder Con Cita
  #3  
Viejo 16/03/12, 11:40:07
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
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.
Responder Con Cita
  #4  
Viejo 16/03/12, 13:14:05
Avatar de monchyrcg
monchyrcg monchyrcg no está en línea
Miembro del foro
Mensajes: 384
 
Fecha de registro: sep 2011
Localización: Cartagena
Mensajes: 384
Modelo de smartphone: LG Optimus Black
Versión de ROM: v10d
Tu operador: Orange
Mencionado: 0 comentarios
Tagged: 0 hilos
Muchas gracias kriogeN pero no se puede crear un mapView en una Activity obligatoriamente ha de ser sobre un MapActivity!!!!
Responder Con Cita
  #5  
Viejo 16/03/12, 13:26:39
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
Cita:
Originalmente Escrito por monchyrcg Ver Mensaje
Muchas gracias kriogeN pero no se puede crear un mapView en una Activity obligatoriamente ha de ser sobre un MapActivity!!!!
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.
Responder Con Cita
  #6  
Viejo 17/03/12, 18:52:03
Avatar de monchyrcg
monchyrcg monchyrcg no está en línea
Miembro del foro
Mensajes: 384
 
Fecha de registro: sep 2011
Localización: Cartagena
Mensajes: 384
Modelo de smartphone: LG Optimus Black
Versión de ROM: v10d
Tu operador: Orange
Mencionado: 0 comentarios
Tagged: 0 hilos
Joder seguro que es una tontería, AYUDARME PLEASE!!!!!!!!!!!!!
Responder Con Cita
  #7  
Viejo 19/03/12, 11:32:23
Avatar de monchyrcg
monchyrcg monchyrcg no está en línea
Miembro del foro
Mensajes: 384
 
Fecha de registro: sep 2011
Localización: Cartagena
Mensajes: 384
Modelo de smartphone: LG Optimus Black
Versión de ROM: v10d
Tu operador: Orange
Mencionado: 0 comentarios
Tagged: 0 hilos
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);
Cuando añado los datos al intent no están bien formados. La solución muy fácil:
Código:
Uri uri = Uri.parse("http://"+txtLink.getText().toString().trim());
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(uri);
startActivity(i);
Gracias a todos, un saludo
Responder Con Cita
Gracias de parte de:
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 02:49:08 (GMT +2)

Cookies settings
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007