簡體   English   中英

如何在Android的ListView中顯示來自MySQL的數據?

[英]How to display the data from mySQL in listview in android?

我可以將數據插入數據庫,但現在面臨無法從數據庫檢索數據並無法在android的listview中顯示的問題。 這是我用於檢索數據的編碼部分。 希望有人可以解決這個問題,謝謝。

package com.example.iuum;


private ProgressDialog pDialog;


private static final String READ_COMMENTS_URL = "http://10.19.229.212/webservice/comments.php";


private static final String TAG_SUCCESS = "success";
private static final String TAG_TITLE = "title";
private static final String TAG_POSTS = "posts";
private static final String TAG_POST_ID = "post_id";
private static final String TAG_USERNAME = "username";
private static final String TAG_MESSAGE = "message";

private JSONArray mComments = null;

private ArrayList<HashMap<String, String>> mCommentList;

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

    setContentView(R.layout.activity_forum1a);
}

@Override
protected void onResume() {

    super.onResume();

    new LoadComments().execute();
}

public void clickbtnWrite(View v) {
    Intent i = new Intent(Forum1a.this, AddForum.class);
    startActivity(i);
}

/**
 * Retrieves recent post data from the server.
 */
public void updateJSONdata() {


    mCommentList = new ArrayList<HashMap<String, String>>();


    JSONParser jParser = new JSONParser();

    JSONObject json = jParser.getJSONFromUrl(READ_COMMENTS_URL);


    try {


        mComments = json.getJSONArray(TAG_POSTS);


        for (int i = 0; i < mComments.length(); i++) {
            JSONObject c = mComments.getJSONObject(i);

            // gets the content of each tag
            String title = c.getString(TAG_TITLE);
            String content = c.getString(TAG_MESSAGE);
            String username = c.getString(TAG_USERNAME);


            HashMap<String, String> map = new HashMap<String, String>();

            map.put(TAG_TITLE, title);
            map.put(TAG_MESSAGE, content);
            map.put(TAG_USERNAME, username);


            mCommentList.add(map);


        }

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

/**
 * Inserts the parsed data into the listview.
 */
private void updateList() {

    ListAdapter adapter = new SimpleAdapter(this, mCommentList,
            R.layout.singelpost, new String[] { TAG_TITLE, TAG_MESSAGE,
                    TAG_USERNAME }, new int[] { R.id.title, R.id.message,
                    R.id.username });


    setListAdapter(adapter);


    ListView lv = getListView();    
    lv.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {



        }
    });
}



public class LoadComments extends AsyncTask<Void, Void, Boolean> {

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        pDialog = new ProgressDialog(Forum1a.this);
        pDialog.setMessage("Loading Comments...");
        pDialog.setIndeterminate(false);
        pDialog.setCancelable(true);
        pDialog.show();
    }

    @Override
    protected Boolean doInBackground(Void... arg0) {
        updateJSONdata();
        return null;

    }

    @Override
    protected void onPostExecute(Boolean result) {
        super.onPostExecute(result);
        pDialog.dismiss();
        updateList();
    }
}
}

在activity_forum1a.xml中添加ListView

<ListView
    android:id="@+id/list_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"></ListView>

取得ListView參考

    private ListView mList;

在onCreate中初始化

    mList = (ListView) findViewById(R.id.list_view);

以ListAdapter類為參照

private ListAdapter listAdapter;

添加setListAdapter方法

public void setListAdapter(ListAdapter listAdapter) {
    this.listAdapter = listAdapter;
    mList.setAdapter(listAdapter);
}

將updateList方法更改為

    /**
     * Inserts the parsed data into the listview.
     */
    private void updateList() {

        ListAdapter adapter = new SimpleAdapter(this, mCommentList,
                R.layout.test, new String[] { TAG_TITLE, TAG_MESSAGE,
                TAG_USERNAME }, new int[] { R.id.title, R.id.message,
                R.id.username });

        setListAdapter(adapter);
}

並通過實現onItemClickListener在方法之外執行項目點擊操作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM