Android如何实现排行榜的功能?

神無木 2016-06-05 08:24:44
问题描述:
1.现要实现一个游戏的排行榜功能,根据不同的游戏级别来显示不同的排行榜。
2.排行榜显示完成的时间,并对时间进行排序。
3.排行榜至多显示五个条目,多出来的向下移除。
提问:
1.排行榜的数据存储是用SQLite实现的,如何根据不同的游戏级别显示不同的排行榜?
2.已完成对排行榜的时间排序,如何只显示五个条目?
...全文
971 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_35519238 2017-01-18
  • 打赏
  • 举报
回复
楼主能发一下源码吗?
神無木 2016-06-05
  • 打赏
  • 举报
回复
Cursor cursor = database.rawQuery (
                "SELECT * FROM tops WHERE schulteLevel=3", null);
        cursor = database.rawQuery (
                "SELECT * FROM tops order by completeTime asc", null);
        cursor = database.rawQuery ("SELECT * FROM tops limit 0, 5", null);
感谢上面的回答,我是这么写的,为什么还会显示schulteLevel = 4、5、6... 的项?
ganshenml 2016-06-05
  • 打赏
  • 举报
回复
不是简单的sql排序吗?
蒲锦_up 2016-06-05
  • 打赏
  • 举报
回复
第一个问题,你查询的时候 加个级别条件就可以了啊。 第二个问题,sql 加个limit
神無木 2016-06-05
  • 打赏
  • 举报
回复
private void init ()
    {
        Intent intent = getIntent ();
        m_nCompleteTime = intent.getIntExtra (
                AppConst.IntentDataKey.SCHULTE_COMPLETE_TIME, 0);
        m_nSchulteSize = intent.getIntExtra (
                AppConst.IntentDataKey.SCHULTE_SIZE, 0);
        m_strCurrentDate = intent
                .getStringExtra (AppConst.IntentDataKey.SCHULTE_COMPLETE_CURRENT_DATE);

        m_strCompleteTime = String.valueOf (m_nCompleteTime);

        m_lvSchulteRanking = (ListView)findViewById (R.id.lvSchulteRanking);
        SimpleAdapter simpleAdapter = new SimpleAdapter (
                getApplicationContext (), getData (),
                R.layout.activity_schulte_ranking_item, new String[]{
                        "currentDate", "completeTime"}, new int[]{
                        R.id.tvSchulteRankingCurrentDate,
                        R.id.tvSchulteRankingCompleteTime});
        m_lvSchulteRanking.setAdapter (simpleAdapter);
    }
private List<Map<String, Object>> getData ()
    {
        List<Map<String, Object>> list = new ArrayList<Map<String, Object>> ();

        DatabaseHelper helper = new DatabaseHelper (m_Context,
                DatabaseHelper.DATABASE_NAME, null,
                DatabaseHelper.DATABASE_VERSION);
        SQLiteDatabase database = helper.getWritableDatabase ();
        Cursor cursor = database.rawQuery (
                "select * from tops order by completeTime asc", null);

        if (cursor.getCount () > 0)
        {
            for (cursor.moveToFirst (); !(cursor.isAfterLast ()); cursor
                    .moveToNext ())
            {
                Map<String, Object> map = new HashMap<String, Object> ();
                m_strCurrentDate = cursor.getString (cursor
                        .getColumnIndex ("currentDate"));
                m_strCompleteTime = cursor.getString (cursor
                        .getColumnIndex ("completeTime"));
                map.put ("currentDate", m_strCurrentDate);
                map.put ("completeTime", m_strCompleteTime);
                list.add (map);
            }
        }
        return list;
    }
根据取到的m_nSchulteSize来判断显示不同的排行榜
睡精灵 2016-06-05
  • 打赏
  • 举报
回复
select top 5 * from table_name;

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧