正如标题所说,我正在使用SimpleCursorAdapter从MatrixCursor填充ListView。当我使用我的Wamp MySql Server(本地)中的url时,它可以工作,但是当我从MySql远程服务器更改为url时,它不会显示这些项目。 请注意Toast始终有效,因为这意味着在两种情况下光标都不为空。日志中不显示错误 我的主要课程:
public class ActivityPista extends AppCompatActivity {
private String url = "http://192.168.1.129/tutorialpistas/GetPistas.php";/**This one works**/
//private String url = "http://*********.com/archivosconnect/getPistas.php";/**This one doesn't**/
private RequestQueue requestQueue;
private String[] columnasBD = new String[] {"_id", "nombre", "municipio", "direccion", "numpistas", "cubierto"};
private MatrixCursor cursor = new MatrixCursor(columnasBD);
private ListView listado;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list_pista_activity);
listado = (ListView)findViewById(R.id.listaPistas);
//Iniciate connection
requestQueue = Volley.newRequestQueue(getApplicationContext());
//Get Json and fill the cursor
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST,
url, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONArray pistas = response.getJSONArray("pistas");
if (pistas != null) {
for (int i = 0; i < pistas.length(); i++) {
JSONObject pista = pistas.getJSONObject(i);
cursor.addRow(new Object[]{
pista.getString("_id"),
pista.getString("nombre"),
pista.getString("municipio"),
pista.getString("direccion"),
pista.getString("numpistas"),
pista.getString("cubierto")
});
Toast.makeText(getApplicationContext(), "Numero: " + (i+1) + " = " + pista.getString("nombre"),
Toast.LENGTH_SHORT).show();//This toast always works
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
System.out.append(error.getMessage());
}
});
//Add requestQueue
requestQueue.add(jsonObjectRequest);
//Set the adapter
final String[] desdeEstasColumnas = {"nombre", "municipio", "direccion", "numpistas", "cubierto"};
int[] aEstasViews = {R.id.textview_item_pista_nombre, R.id.textview_item_pista_municipio, R.id.textview_item_pista_direccion,
R.id.boton_item_pista_num, R.id.boton_item_pista_cubierta};
final SimpleCursorAdapter mArrayAdapter = new SimpleCursorAdapter(this, R.layout.item_lista_pista, cursor, desdeEstasColumnas, aEstasViews, 0);
listado.setAdapter(mArrayAdapter);
}
}
这是item_lista_pista.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="@drawable/marco"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout
android:id="@+id/linear_layout_lista_pistas"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:descendantFocusability="blocksDescendants">
<LinearLayout
android:layout_width="0dp"
android:layout_weight="0.2"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/imageview_item_pista"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="centerInside"
android:src="@mipmap/menu_pista2"
android:adjustViewBounds="true"
android:cropToPadding="false"
android:layout_gravity="fill"/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_weight="0.7"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_vertical">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_margin="5dp"
android:layout_marginBottom="5dp">
<TextView
android:id="@+id/textview_item_pista_nombre"
android:layout_marginTop="10dp"
android:hint="@string/nombre"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/fuente_grande"
/>
<TextView
android:id="@+id/textview_item_pista_municipio"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="@string/municipio"
style="@style/fuente_normal"
/>
<TextView
android:id="@+id/textview_item_pista_direccion"
android:hint="@string/direccion"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/fuente_normal"
/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_margin="5dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Pistas"/>
<Button
android:id="@+id/boton_item_pista_num"
android:layout_width="50dp"
android:layout_height="25dp"
android:layout_gravity="center"
android:layout_marginLeft="5dp"
android:layout_marginRight="10dp"
android:background="@drawable/marco"
android:hint="@string/numpistas"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cubierto"/>
<Button
android:id="@+id/boton_item_pista_cubierta"
android:layout_width="50dp"
android:layout_height="25dp"
android:layout_gravity="center"
android:background="@drawable/marco"
android:layout_marginLeft="5dp"
android:hint="@string/cubierto"
android:textAllCaps="false"/>
<TextView
android:id="@+id/txtTestPistas"
android:visibility="gone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
最后使用ListView:
列出list_pista_activity.xml<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:scrollbars="vertical"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:id="@+id/listaPistas"/>
任何帮助都会受到赞赏:)