带有SimpleCursorAdapter的ListView不显示来自Online JSON的项目,但它来自本地JSON

时间:2015-12-07 19:22:37

标签: android mysql json listview simplecursoradapter

正如标题所说,我正在使用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"/>

任何帮助都会受到赞赏:)

0 个答案:

没有答案