2017-04-06 15 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

staticとしてのArrayListを使用し、値をArrayListに入れた後から、単にadapterReprFav.notifyDataSetChanged()を呼び出します。 –

+0

スタティックは使用しないでください。 [EventBus](https://github.com/greenrobot/EventBus)を使用し、新しいリストを渡すイベントをポストし、アダプターの内部でイベントを処理し、notifyDataSetChanged()を呼び出します。 –

+0

あなたは他の活動をどこから始めていますか?これはあなたがこれをやっている間に既に始まっていますか? –

答えて

0

まず、リストビューアクティビティのコンテキストを維持するグローバル・クラスを作成します。その後

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の中で:

public class Global extends Application { 
    Context context; 
} 

その後は、ListViewコントロールが含まれている活動にパブリックメソッドを作成する必要が

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