Boa tarde,
Estou tendo um problema relacionado à navegação entre classes no Android. Possuo uma classe Conexao.java que é responsável por consumir um WebService através de um framework chamado KSOAP2 que foi feito especialmente para Android. Esta classe retorna uma lista de dados do MySQL:
package org.ci.geo.route;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import android.app.Activity;
import java.util.ArrayList;
import java.util.List;
public class Conexao extends Activity{
public List<Double> getLatitude() {
String SOAP_ACTION = "ObterGeoPointService";
String METHOD_NAME = "queryLatitude";
String NAMESPACE = "http://com";
String URL = " http://localhost:8080/axis2/services/ObterGeoPointService?wsdl";
List<Double> lat;
lat = new ArrayList<Double>();
try {
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.call(SOAP_ACTION, envelope);
SoapObject results = (SoapObject) envelope.bodyIn;
int count = results.getPropertyCount();
for (int i = 0; i < count; i++) {
lat.add(Double.parseDouble(results.getProperty(i).toString()));
}
} catch (Exception e) {
e.printStackTrace();
}
return lat;
}
}
Possuo uma classe chamada PosicaoHuts.java que é responsável por receber a lista e armazená-la, sendo que ela possui um método que faz com que eu escolha a posição da lista que desejo acessar:
package org.ci.geo.route;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
public class PosicaoHuts extends Activity {
Conexao conn = new Conexao();
List<Double> lat = new ArrayList<Double>();//aqui são declaradas as listas
List<Double> lon = new ArrayList<Double>();
public PosicaoHuts(){
lat.addAll(conn.getLatitude());
lon.addAll(conn.getLongitude());
}
public int buscarLat(int i){
return (int)(lat.get(i) * 1E6);
}
public int buscarLon(int i){
return (int)(lon.get(i) * 1E6);
}
}
Testei ambas as classes e funcionaram muito bem em um projeto JAVA, porém, quando tento instanciar a classe PosicaoHuts na classe principal do projeto Android, dá erro ao tentar instanciar. O erro que ocorre é que o emulador força o fechamento do aplicativo. O código da classe é:
package org.ci.geo.route;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.util.List;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.Drawable;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
public class MapRouteActivity extends MapActivity implements LocationListener {
LinearLayout linearLayout;
MapView mapView;
private Road mRoad;
private MapController controller;
private MeuOverlay overlay;
private LocationManager locationManager;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mapView = (MapView) findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(true);
Button botOk = (Button) findViewById(R.id.buttonOk);
Button botInicio = (Button) findViewById(R.id.buttonInicio);
PosicaoHuts ph = new PosicaoHuts();//não permite que ocorre isso
int lat = ph.buscarLat(0);
TextView tw = (TextView) findViewById(R.id.textViewLatitude);
tw.setText(lat);
No logcat o erro é este:
04-29 19:37:49.153: I/Process(694): Sending signal. PID: 694 SIG: 9
04-29 19:38:05.483: I/MapActivity(722): Handling network change notification:CONNECTED
04-29 19:38:05.493: E/MapActivity(722): Couldn’t get connection factory client
Por favor, alguém me ajude, já estou há 2 meses nesse problema.