2014-02-25 55 views
0

嗨測試一個示例gcm應用程序,但每次我發送一條消息,我不能在listview中添加另一個值。發生的是以前的消息正在被新消息取代。正在更新listview with arrayadapter

這裏是我的代碼:

對不起編碼差。

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_memo); 
    getActionBar().setDisplayHomeAsUpEnabled(true); 
    list1 = (ListView)findViewById(R.id.listView1); 

    registerReceiver(HandleMemoReceiver, new IntentFilter(DISPLAY_MESSAGE_ACTION)); 

} 
private final BroadcastReceiver HandleMemoReceiver = new BroadcastReceiver(){ 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     // TODO Auto-generated method stub 

     String newMessage = intent.getExtras().getString(EXTRA_MESSAGE); 
     //memo.append(newMessage + "\n"); 
     ArrayList<String> nm = new ArrayList<String>(); 

     ArrayAdapter<String> adapter = new ArrayAdapter<String>(Memo.this, android.R.layout.simple_list_item_1,nm); 
     list1.setAdapter(adapter); 
     adapter.add(newMessage); 
     adapter.notifyDataSetChanged(); 
    } 
}; 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.memo, menu); 
    return true; 
} 
public void onBackPressed() { 
    finish();//go back to the previous Activity 
    overridePendingTransition(R.anim.pull_in_left, R.anim.push_out_right); 
} 

回答

2

你需要讓你的ArrayAdapter類級別的變量 - 在這個時候,它將被重新初始化每次的onReceive()方法被觸發時,導致其重置爲空ArrayAdapter,然後在新加信息。