无法显示发送记录

来源:2-6 消息记录Fragment编写

botao555

2015-12-28 17:27

有没有人遇到发送完短信切换到发送记录就一直显示一个progressBar,并没有显示发送记录?

写回答 关注

2回答

  • atwal
    2016-02-20 10:55:27
    已采纳

    1、确认是否写入了数据库,可以通过命令行看

    2、数据写入数据库了,没有显示出来(也是我遇到的问题),原因是SmsProvider中的query写错了,正确的应该是:

    @Nullable
    @Override
    public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
        int match = matcher.match(uri);
        switch (match) {
            case SMS_ALL:
                break;
            case SMS_ONE:
                long id = ContentUris.parseId(uri);
                selection = "_id=?";
                selectionArgs = new String[]{String.valueOf(id)};
                break;
            default:
                throw new RSIllegalArgumentException("Wrong URI:" + uri);
        }
        mDb = mHelper.getReadableDatabase();
        Cursor cursor = mDb.query(SendedMsg.TABLE_NAME, projection, selection, selectionArgs, null, null, sortOrder);
        cursor.setNotificationUri(getContext().getContentResolver(), URI_SMS_ALL);
        //cursor.close();
        return cursor;
    }

    注意最后两行代码

    botao5...

    非常感谢!

    2016-02-20 11:02:28

    共 1 条回复 >

  • botao555
    2015-12-28 23:32:44

    newView和bindView没有被调用是为什么?

    mCursorAdapter = new CursorAdapter(getActivity(), null, false) {
    
        @Override
        public View newView(Context context, Cursor cursor, ViewGroup parent) {
            Log.e("CBT", "newView-->");
            View view = mInflater.inflate(R.layout.item_sended_msg, parent, false);
            return view;
        }
    
        @Override
        public void bindView(View view, Context context, Cursor cursor) {
            Log.e("CBT", "bindView-->");
            TextView msg = (TextView) view.findViewById(R.id.id_tv_msg);
            FlowLayout fl = (FlowLayout) view.findViewById(R.id.id_fl_contacts);
            TextView fes = (TextView) view.findViewById(R.id.id_tv_fes);
            TextView date = (TextView) view.findViewById(R.id.id_tv_date);
    
            msg.setText(cursor.getString(cursor.getColumnIndex(SendedMsg.COLUMN_MSG)));
            fes.setText(cursor.getString(cursor.getColumnIndex(SendedMsg.COLUMN_FES_NAME)));
            date.setText(cursor.getString(cursor.getColumnIndex(SendedMsg.COLUMN_DATE)));
    
            String names = cursor.getString(cursor.getColumnIndex(SendedMsg.COLUMN_NAMES));
            Log.e("CBT","namesBefore-->"+names);
            if (TextUtils.isEmpty(names)) {
                return;
            }
            Log.e("CBT","namesAfter-->"+names);
            fl.removeAllViews();
            for (String name : names.split(":")) {
                addTag(name,fl);
            }
        }
    };


Android-节日短信送祝福(功能篇)

本课程将带领大家实现一个节日短信的应用,此课程为续集

17448 学习 · 26 问题

查看课程

相似问题