【问题标题】:How to display all values from DB to Android via JSON如何通过 JSON 显示从 DB 到 Android 的所有值
【发布时间】:2017-05-10 14:30:04
【问题描述】:

我想制作一个应用程序,它通过 json 从 MySQL 数据库获取一些数据并将它们显示在应用程序上。我已经让它只显示一个结果,但我希望它们都显示出来。我应该在某处添加一个循环?能否请你帮忙?谢谢!

PlacesActivity.java

public class PlacesActivity extends Activity {
TextView place_id1;
TextView user_id1;
TextView name1;
TextView description1;
TextView type1;
TextView coordinates1;
Button Btngetdata;

private static String url = "theurlishere";

private static final String TAG_PLACES = "places";
private static final String TAG_PLACEID = "place_id";
private static final String TAG_USERID = "user_id";
private static final String TAG_NAME = "name";
private static final String TAG_DESCRIPTION = "description";
private static final String TAG_TYPE = "type";
private static final String TAG_COORDINATES = "coordinates";

JSONArray places = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_places);
    Btngetdata = (Button)findViewById(R.id.getdata);
    Btngetdata.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            new JSONParse().execute();

        }
    });

}

 private class JSONParse extends AsyncTask<String, String, JSONObject> {
    private ProgressDialog pDialog;
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        place_id1 = (TextView)findViewById(R.id.place_id);
        user_id1 = (TextView)findViewById(R.id.user_id);
        name1 = (TextView)findViewById(R.id.name);
        description1 = (TextView)findViewById(R.id.description);
        type1 = (TextView)findViewById(R.id.type);
        coordinates1 = (TextView)findViewById(R.id.coordinates);

        pDialog = new ProgressDialog(PlacesActivity.this);
        pDialog.setMessage("Getting Data ...");
        pDialog.setIndeterminate(false);
        pDialog.setCancelable(true);
        pDialog.show();

    }

    @Override
    protected JSONObject doInBackground(String... args) {
        JSONParser jParser = new JSONParser();

        JSONObject json = jParser.getJSONFromUrl(url);
        return json;
    }
    @Override
    protected void onPostExecute(JSONObject json) {
        pDialog.dismiss();
        try {
            allplaces = json.getJSONArray(TAG_ALLPLACES);
            JSONObject c = allplaces.getJSONObject(0);

            String places_id = c.getString(TAG_PLACEID);
            String user_id = c.getString(TAG_USERID);
            String name = c.getString(TAG_NAME);
            String description = c.getString(TAG_DESCRIPTION);
            String type = c.getString(TAG_TYPE);
            String coordinates = c.getString(TAG_COORDINATES);

            place_id1.setText(places_id);
            user_id1.setText(user_id);
            name1.setText(name);
            description1.setText(description);
            type1.setText(type);
            coordinates1.setText(coordinates);



        } catch (JSONException e) {
            e.printStackTrace();
        }

    }
}}

activity_places.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.media1.thesistest2.PlacesActivity" >
<TextView
    android:id="@+id/place_id"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/user_id"
    android:layout_alignParentTop="true"
    android:layout_marginTop="76dp"
    android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
    android:id="@+id/user_id"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/place_id"
    android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
    android:id="@+id/name"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/user_id"
    android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
    android:id="@+id/description"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/name"
    android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
    android:id="@+id/type"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/description"
    android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
    android:id="@+id/coordinates"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/type"
    android:textAppearance="?android:attr/textAppearanceLarge" />


<Button
    android:id="@+id/getdata"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="23dp"
    android:text="Get Data" />

【问题讨论】:

  • 尝试使用列表视图和数组适配器查找示例
  • 您需要一个 ListView 来呈现所有数据。在获取 JSONArray 的行中,您必须循环获取所有数据,并将其传递给 ListView 中的自定义适配器。

标签: android mysql json database


【解决方案1】:

我确实找到了答案,这个例子正是我想要的:https://www.learn2crack.com/2013/11/listview-from-json-example.html

谢谢你:)

【讨论】:

    猜你喜欢
    • 2016-12-20
    • 2016-09-19
    • 1970-01-01
    • 1970-01-01
    • 2013-07-07
    • 1970-01-01
    • 1970-01-01
    • 2020-08-19
    • 2017-07-30
    相关资源
    最近更新 更多