Web サービスからデータを読み取るアプリを作成しました。しかし、実際のデバイスで実行しようとしたとき。それは動作しません。最初の画面で停止しただけで、アプリのタイトル以外は何も表示されません。webserice からデータを読み込めるようです。何か設定する必要がありますか?
アプリにはインターネット アクセス許可がありますが、サービスはローカルで実行されているため、現時点では必要ありません。アイデアや同様の経験はありますか?
メインクラス:
public class Dashboard extends FragmentActivity implements OnClickListener, ClientDetailActivity.OnHeadlineSelectedListener {
Button btnConociendoAlCliente, btnMaterialDeApoyo, btnMaterialPromocional;
LinearLayout panelConociendoAlCliente, panelMaterialDeApoyo,
panelMaterialPromocional, panelFragment;
Fragment listFragment;
ClientDetailActivity clientDetailActivity;
private ListView list;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dashboard);
initComponents();
}
public void initComponents() {
panelFragment = (LinearLayout) findViewById(R.id.panelFragment);
panelMaterialDeApoyo = (LinearLayout) findViewById(R.id.panelMaterialDeApoyo);
panelMaterialPromocional = (LinearLayout) findViewById(R.id.panelMaterialPromocional);
panelFragment.setVisibility(View.GONE);
panelMaterialDeApoyo.setVisibility(View.GONE);
panelMaterialPromocional.setVisibility(View.GONE);
btnMaterialDeApoyo = (Button) findViewById(R.id.btnMaterialDeApoyo);
btnMaterialPromocional = (Button) findViewById(R.id.btnMaterialPromocional);
btnConociendoAlCliente = (Button) findViewById(R.id.btnConociendoAlCliente);
btnConociendoAlCliente.setOnClickListener(this);
btnMaterialDeApoyo.setOnClickListener(this);
btnMaterialPromocional.setOnClickListener(this);
clientDetailActivity = new ClientDetailActivity();
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.add(R.id.listFragment, clientDetailActivity);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
私の Web サービスは、クライアントに関するデータベースの日付から収集するだけです。これはコードです:
HttpClient httpClient = new DefaultHttpClient();
HttpGet del = new HttpGet(ruta + "s");
del.setHeader("content-type", "application/json");
try {
HttpResponse resp = httpClient.execute(del);
String respStr = EntityUtils.toString(resp.getEntity());
JSONArray respJSON = new JSONArray(respStr);
clientes = new String[respJSON.length()];
for (int i = 0; i < respJSON.length(); i++) {
JSONObject obj = respJSON.getJSONObject(i);
// Log.e("nombre", idCli);
ClienteDetallado clienteDetallado = new ClienteDetallado();
try {
clienteDetallado.setCod_Medico(obj.getString("Cod_Medico"));
} catch (Exception e) {
clienteDetallado.setCod_Medico("N/A");
}
try {
clienteDetallado.setNombre(obj.getString("Nombre"));
} catch (Exception e) {
clienteDetallado.setNombre("N/A");
}
try {
clienteDetallado.setApellido(obj.getString("Apellido"));
} catch (Exception e) {
clienteDetallado.setApellido("N/A");
}
clienteDetallados.add(clienteDetallado);
}
MyOwnArrayAdapter myOwnArrayAdapter = new MyOwnArrayAdapter(getActivity(), clienteDetallados);
list.setAdapter(myOwnArrayAdapter);
} catch (Exception ex) {
Log.e("ServicioRest", "Error en listar!", ex);
}
return view;
}
上記のフラグメントのメソッド getView() にあります。HttpClient クラスで使用される URL があります。エミュレータでは、すべて正常に動作します。しかし、デバイスにはありません。
ありがとう!