2013-11-25 3 views
1

Я изменяю исходные данные элемента управления ListView в mMessageReceiver, но элемент управления ListView по-прежнему отображает старые строки, Как обновить элемент управления ListView в mMessageReceiver? Благодаря!Как обновить элемент управления ListView?

private ListView lv; 

private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     HandleRule.SaveFullRule(PublicPar.SharedRule); 
     //I hope to refresh ListView control 
    } 
}; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.sms_main); 

    LocalBroadcastManager.getInstance(this).registerReceiver(mMessageReceiver, 
       new IntentFilter(PublicPar.LocalBroadcastForRule)); 

    PublicPar.myContext=getApplicationContext();   
    lv = getListView(); 

     FillListView(); 
} 

private void FillListView(){ 
    Cursor c=HandleRule.GetCursorOfAllRuleMain();  
    String[] cols=new String[] {"name"}; 
    int[] views=new int[]{R.id.mylisttext}; 
    SimpleCursorAdapter myAdapter=new SimpleCursorAdapter(this,R.layout.sms_simple_list_item_multiple_choice,c,cols,views); 
    lv.setAdapter(myAdapter); 
    lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);  
    SetCheckBoxStatus(); 
} 
+0

Не могли бы вы просто называть 'FillListView()'? – hichris123

+0

Да, я могу назвать FillListView(), но я думаю, что это не хороший код – HelloCW

ответ

3
myAdapter..notifyDataSetChanged(); 

предполагается обновить ListView.
Для получения более подробной информации обратитесь к developer page.

+0

lv.getAdapter() - это ListAdapter, но он не поддерживает notifyDataSetChanged(); – HelloCW

+0

Вы имеете в виду, что вы не можете вызвать myAdapter.notifyDataSetChanged()? Кстати, попробовали ли вы назвать свой метод FillListView()? –

+0

SimpleCursorAdapter myAdapter - это локальный var, поэтому я не могу позвонить в mMessageReceiver и больше lv.getAdapter() вернуть ListAdapter, но ListAdapter не поддерживает notifyDataSetChanged()! – HelloCW

Смежные вопросы