如何将从数据库中检索到的某些数据行显示到listView中

时间:2016-03-15 15:39:13

标签: php android mysql listview

我在数据库中有2个表,我使用他们的topic_id加入了这两个表,使用以下查询:

SELECT ReplyData.topic_id, ReplyData.reply_user, ReplyData.reply_content, ReplyData.reply_datetime FROM
ReplyData INNER JOIN ForumData ON ForumData.topic_id = ReplyData.topic_id

结果是: Result of the joined table

现在我有一个listView,我想将检索到的数据显示到listView。但我想只显示一些数据。例如,在listView的第1项中,我只想显示topic_id = 36的数据,而在listView的第2项中,我只想显示带有topic_id = 37等的数据。但我不想'我知道怎么做。我只能显示listView的第1项和第2项中的所有项目,这使得它们始终显示相同的数据。它就像一个讨论论坛,有人打开帖子,有人做出回复。所以我会继续打开帖子,这些帖子会显示在listView中,如果有人点击这个项目并做出回复,这个回复只会出现在这个项目中,而不会出现在其他项目中

我有自定义适配器来显示数据,并从php文件和JSONObject中检索数据。所有的工作正常,但正确显示数据。 非常感谢任何帮助。

自定义适配器:

        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);

        // 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;

3 个答案:

答案 0 :(得分:0)

使用getter和setter创建一个类,使用类对象在setter中添加列值,然后创建一个arraylist xyz = new arraylist();

然后在arraylist

中添加包含db值的类对象

然后通过在arrayadapter的构造函数中传递arraylist对象将listview与此arraylist绑定

然后在getview()内部分配/(getters)各个视图的值

答案 1 :(得分:0)

你的问题不是很明确,但如果我理解得当,你有两个选择;一个比另一个好:

THE WORSE

您可以使用if条件修改getCountgetItemgetView等...(如果topic_nr = 36则不显示)。

最佳

以前的解决方案存在一个真正的问题:您丢失了一层抽象。

如果必须这样做,我根本不会修改适配器(因为适配器在设计上只是为了渲染数据,而不是为了计算它们)而且我会处理列表本身的所有操作:具体来说,我会有两个列表,datadisplayed,我会从数据中选择一些项目并将它们放在displayed中,然后调用adapter.notifyDataSetChanged。适配器仅显示displayed中包含的项目。

答案 2 :(得分:0)

在PHP中运行查询,将值集合到一个数组中。在循环中,写出XML文件。调用.php URL(我知道iPhone的XCode - API是NSURL) - 应该有适用于Android的解析器(我知道有一个用于iOS);再次,在循环中,创建项目以构成列表视图并显示。