我目前正在做一個簡單的Android論壇。我可以成功地從數據庫保存和檢索數據(000webhost中的phpMyAdmin
)。我還可以將檢索到的數據顯示到listView
中。從數據庫顯示項目到列表視圖與不同項目的不同數據
因爲它是一個論壇,不同的項目(主題)應該有不同的回覆。所以我有兩個不同的表格,一個是ForumData
(用於存儲主題),另一個是(用於存儲回覆)。兩個表都有一個topic_id,用於引用不同的主題,例如的topic_id = 3 in ReplyData
答覆有關topic_id = 3 in ForumData.
一般情況下,只應該在點擊進入專題3.每次我點擊進入不同的主題時,將顯示所有的答覆,無論topic_id是什麼顯示的topic_id = 3
答覆,但。那麼,如何才能在相關主題中顯示相關回復?我應該在PHP文件或應用程序中執行它嗎?
這是在檢索應答數據我的PHP文件:
<?php
//personal data hidden
$con = mysql_connect();
mysql_select_db('db', $con);
$r = mysql_query('SELECT ReplyData.reply_user, ReplyData.reply_content, ReplyData.reply_datetime FROM
ReplyData INNER JOIN ForumData ON ForumData.topic_id = ReplyData.topic_id');
$out = array();
while($row = mysql_fetch_array($r)){
$out[] = $row;
}
print(json_encode($out));
mysql_close($con);
?>
這是我爲ListView適配器:
public class MyListAdapter extends ArrayAdapter<ReplyItemList> {
public MyListAdapter() {
super(ContentPage.this, R.layout.layout_reply, itemList);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// make sure we have a view to work with
View itemView = convertView;
if (itemView == null) {
itemView = getLayoutInflater().inflate(R.layout.layout_reply, parent, false);
}
// find the activity to work with
ReplyItemList currentActivity = itemList.get(position);
//get current time and date
// fill the view
TextView makeReplyUser = (TextView) itemView.findViewById(R.id.tvRespondent);
makeReplyUser.setText("Re: " + currentActivity.getRespondent() + " ");
TextView makeReplyContent = (TextView) itemView.findViewById(R.id.tvReplyContent);
makeReplyContent.setText(currentActivity.getReplyContent());
TextView makeReplyDatetime = (TextView) itemView.findViewById(R.id.tvReplyDatetime);
makeReplyDatetime.setText("(" + currentActivity.getDateTime() + ")");
return itemView;
}
}
這是ListView的填充方法:
private void populateListView() {
adapter = new MyListAdapter();
ListView list = (ListView) findViewById(R.id.replyList);
list.setAdapter(adapter);
}
Log.i(fetchedTopicID + " " + respondent + " " + content + " " + datetime + " ", "json result");
您還應該提供您的應用程序代碼,以及如何檢索它以及如何存儲它。 :) –
@sept它不是數據檢索和存儲問題,因爲他們工作得很好。我想知道如果它是填充問題 –