2016-09-19 13 views
-1

ここに助けが必要です。1つのフラグメントから別のフラグメントにArrayListアイテムを渡す

私は2つの断片でAndroidアプリを構築しています。 General Fragmentsには項目のリストがあり、これらの項目には星があります。ユーザーがListView ItemのStarをクリックすると、そのItemがお気に入りフラグメントのListView。

ListViewから別のフラグメントの別のListViewにアイテムをコピーします。

私は一般的な断片のアダプターを使って項目を記入しています。

リストビュー項目の変数はただのTextView(タイトル)であり、ここでImageViewの(ポスター)

インターフェイスがimplementetですが、私は違う切り替えることが、一番下のナビゲーションドロワーを使用していますまた、MainActivityクラスです断片。インターフェイスメソッドは最後です。ここで

がインターフェースから利用主な活動方法である: enter image description here

+0

インターフェイスの実装についてお読みください。リストアイテムの詳細を、一般からお気に入りに渡すことができます。 – brandall

+0

arraylistとして意図通りのデータを渡すと効果があります。 –

+0

Parceableを使用:https://developer.android.com/reference/android/os/Parcelable.html。カスタムクラスの実装をparceableにして、配列リストをBundleに渡します。 –

答えて

2

は、この

myList = new ArrayList<GroupListDetail>(); 
for(int a = 0; a<myList2.size();a++) 
{ 
GroupListDetail gld = new GroupListDetail(); 
gld.setItem_ID(myList2.get(a).getItem_ID()); 
myList.add(gld); 
} 

    Intent i = new Intent(GroupList.this, Gscanner.class); 
      if ((results != null) && results.size() > 0) { 
       i.putExtra("mylist", results); 
      } 
のようなリストを追加し、パスリストビューに

ArrayList<GroupListDetail> results; 
try { 
     results = (ArrayList<GroupListDetail>) getIntent() 
       .getSerializableExtra("mylist"); 
    } catch (Exception e) { 

    } 


if ((results != null) && results.size() > 0) { 
     listView.setAdapter(new GroupListAdapter(this, results)); 
    } 

をそれを置くこのようなリストを受け取ります

詳細.java

@SuppressWarnings("serial") 
public class GroupListDetail implements Serializable{ 

    public String getItem_ID() { 
    return Item_ID; 
    } 
    public void setItem_ID(String Item_ID) { 
    this.Item_ID = Item_ID; 
    } 
    private String Item_ID ; 
} 
+0

シリアライズ可能ではなくPaceableを実装できます。このhttp://www.3pillarglobal.com/insights/parcelable-vs-java-serialization-in-android-app-developmentは、なぜparceableが優れているかを少しはっきりさせるかもしれません。 –

0

これにはBroadCastまたはEventBusを使用できます。ここにはlink of EventBusです。私の意見では、EventBusは使いやすくなっています。

0

一般およびお気に入りリストの一部に同じアダプタを使用してリストを作成できます。 enum Mode {General、Favorite} を使用してそれぞれのリストを表示できます。

各リスト項目にブール値フラグ(isFavorite)を付けることができます。 最初に、isFavoriteの値をfalseにすることができます。

一般的なリストのOnClickItemリスナーでは、特定のアイテムに対してそのフラグをtrueにトグルするだけです。

一般的なリストでは、isFavoriteをfalseに設定します(そのリストにお気に入りのアイテムを表示したくない場合)。お気に入りリストには、isFavoriteがtrueに設定されているリストが表示されます。

同様にお気に入りリストから一般リストに切り替えることができます。

+0

Androidに新しくなったので、あなたはコードを書くことによって私を助けることができると思いますか? よろしくお願いいたします。 ありがとうございます。 –

+0

確かに初期ドラフトを投稿できますか?私はあなたにそれを手伝うことができます。 – aurilio

関連する問題