2017-04-06 66 views
0

在我的應用我有一個其中包含一個名爲「添加到收藏夾」,當我點擊該按鈕,我想在另一個活動發送值到按鈕,我想添加值從檢索一個,任何人都可以幫忙嗎?如何在其他活動中將值添加到ListView?

這是我有:

.setNegativeButton("Favoritos",new DialogInterface.OnClickListener(){ 
public void onClick(DialogInterface dialog,int which){ 

     int position=(int)marker.getTag(); 
     final ListView listReprFav=(ListView)findViewById(R.id.listaFavRepresentantes); 
      ListAdapter adapterReprFav=new SimpleAdapter(
      (MapsActivity.this), 
      listaRepresentantes, 
      R.layout.list_item_representantes_fav, 
      new String[]{listaOportunidades.get(position).get("Designacao"),listaOportunidades.get(position).get("Morada")}, 
      new int[]{R.id.DesignacaoReprFav,R.id.Cidade}); 

     listReprFav.setAdapter(adapterReprFav); 
     } 
} 
+0

使用ArrayList的靜態和從將值放入ArrayList後,只需調用adapterReprFav.notifyDataSetChanged(); –

+0

請勿使用靜電。使用[EventBus](https://github.com/greenrobot/EventBus)併發布通過新列表的事件並在適配器內部處理事件並調用notifyDataSetChanged()。 –

+0

你從哪裏開始其他活動?在你這樣做的時候它已經開始了? –

回答

0

首先創建一個全局類,將讓ListView的活動的語境。

public class Global extends Application { 
    Context context; 
} 

然後,你需要在包含活動創建一個公共方法的ListView:

public class ListViewActivity extends Activity { 

    public List<String> listItems; 
    public ArrayAdapter<String> adapter; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     .... 

     Global.context = this; //Set context in Global. 

     ListView listView = (ListView) findViewById(R.id.listView1); 

     adapter = new ArrayAdapter<String> 
     (this, android.R.layout.simple_list_item_1, android.R.id.text1, 
     listItems); 


     listView.setAdapter(adapter); 
    } 

    //This method will add a new String to listItems array and 
    //notifies adapter for changes. 
    public void addItemAndRefreshListView(String[] newItems){ 
     for(int i = 0; i<newItems.length; i++){ 
      listItems.add(newItem); 
     } 
     adapter.notifyDataSetChanged(); 
    } 

} 

後,在對話框按鈕的onClick:

.setNegativeButton("Favoritos",new DialogInterface.OnClickListener(){ 
    public void onClick(DialogInterface dialog,int which){ 
     if(Global.context != null){ 
      ((ListViewActivity) Global.context).addItemAndRefreshListView(values); 
     } 
    } 
} 
相關問題