【问题标题】:android refresh listview from broadcastreceiverandroid从broadcastreceiver刷新listview
【发布时间】:2016-01-17 03:45:19
【问题描述】:

我的应用在一个活动中包含一个ListView 和一个BroadcastReceiver。我希望我的Broadcastreceiver 在触发时刷新ListView。我的接收器将内容放入一个 sqlite 数据库,我的listview 显示该数据库的内容。

使用 ListView 的活动:

lv=(ListView) findViewById(R.id.conversation);
lv.setSelection(lv.getCount()-1);
lv.setAdapter(new mAdapter(this, srsList, messagesList, timesList, numbersList, idList));
registerForContextMenu(lv);

广播接收者:

SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
//values.put(Messages.KEY_ID, i1);
values.put(Messages.KEY_sr, "r");
values.put(Messages.KEY_message, message);
values.put(Messages.KEY_time, datetime);
values.put(Messages.KEY_number, sen);
// Inserting Row
long student_Id = db.insert(Messages.TABLE, null, values);
db.close(); // Closing database connection

【问题讨论】:

    标签: java android sqlite android-listview


    【解决方案1】:

    您可以在包含适配器的 Activity 中创建一个 BroadcastReciever 并通知应刷新适配器:

    private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
    
            // Extract data included in the Intent
            // String message = intent.getStringExtra("message");
    
            if (mAdapter!= null) {
                mAdapter.notifyDataSetChanged();
            }
        }
    };
    

    在 onResume 中重新注册此 BroadcastReciever:

    this.registerReceiver(mMessageReceiver, new IntentFilter("some_unique_name"));
    

    并且取消注册 onPause:

    this.unregisterReceiver(mMessageReceiver);
    

    在你的 BroadcastReciever 中使用:

    private void updateYourActivity(Context context) {
    
        Intent intent = new Intent("some_unique_name");
    
        // put whatever data you want to send, if any
        // intent.putExtra("message", message);
    
        // send broadcast
        context.sendBroadcast(intent);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-18
      相关资源
      最近更新 更多