2016-10-27 19 views
-1

私は領域トランザクションを実行し、データモデル用のjson配列を渡しました。レルム結果のデータを配列リストに渡すには?

public void execute(Realm realm){ 
    for (int i = 0; i<menuListArray.length(); i++){ 
     try{ 
      JSONObject jObject = menuListArray.getJSONObject(i); 
      user.setMenuTitle(jObject.getString("title")); 
      realm.copyToRealm(user); 
      Intent intent = new Intent(getApplication(), ProfileLandingActivity.class); 
      startActivity(intent); 
      finish(); 
     } catch (Exception e){ 
      e.printStackTrace(); 
     } 
    } 
} 

私は、私は別のアクティビティにレルム結果getUserMenu()を使用していたオブジェクト

public RealmResults<User> getUserMenu() { 
    return realm.where(User.class).distinct("menuTitle"); 
} 

を取得するには、次のクエリを実行した:

RealmResults<User> users = RealmController.initialize(this).getUserMenu(); 

を今、私はusers.first()を実行する場合、私はできるだけでJSONから最初のデータを取得します。私がusers.last()を実行すると、JSONから最後のデータしか取得できません。しかし、私は領域の結果ユーザーからすべてのデータを取得する必要があります。 JSONからすべてのデータを取得するにはどうすればよいですか?これらのデータを配列リストに渡す必要があります。

問題になっている私の声明のいずれかが、私が1つになりたいと思っているように、開発者の言語を満たしていない場合は、私にはご容赦ください。

+0

intentを介してメニュータイトル文字列の配列リストを渡してみます。 –

+0

私はそれを行うことができますが、後でデータの目的で、私は本当に領域を使用する必要がありますか? –

+0

copyToRealmを確認してください。オーバーロードされたメソッド:https://realm.io/docs/java/latest/api/io/realm/Realm.html#copyToRealm-io.realm.RealmObject-私はあなたが複数のオブジェクトをコピーすることができますiterableリスト。 –

答えて

1
あなたは以下のようにforループの外にテントを使用する必要が

...

public void execute(Realm realm){ 
     for (int i = 0; i<menuListArray.length(); i++){ 
      try{ 
       JSONObject jObject = menuListArray.getJSONObject(i); 
       user.setMenuTitle(jObject.getString("title")); 
       realm.copyToRealm(user); 
      } catch (Exception e){ 
       e.printStackTrace(); 
      } 
     } 
     Intent intent = new Intent(getApplication(), ProfileLandingActivity.class); 
     startActivity(intent); 
     finish(); 
    } 

、あなたはこのコード、他の活動の後

for (User userData : users) { 
      String title = userData.getMenuTitle(); 
     } 
+0

ありがとうございました@sagar pithiya –

+0

私は開発に慣れていないので、すべての "タイトル"データを配列に渡すことをおすすめしますか? –

+0

すべてのタイトルを配列に読み込むと、自動更新と遅延評価が失われます。 -_- RecyclerViewとRealmRecyclerViewAdapterを使用する – EpicPandaForce

0
public void execute(Realm realm){ 
    for (int i = 0; i < menuListArray.length(); i++) { 
     try{ 
      JSONObject jObject = menuListArray.getJSONObject(i); 
      user.setMenuTitle(jObject.getString("title")); 
      realm.insert(user); 
     } catch (Exception e){ 
      e.printStackTrace(); 
     } 
    } 
    Intent intent = new Intent(getApplication(), ProfileLandingActivity.class); 
    startActivity(intent); 
    finish(); 
} 

、ショーを使用して、すべてのタイトルを取得することができます要素はRealmRecyclerViewAdapterのRecyclerViewを使用しています。

RecyclerView.Adapter adapter = new RealmRecyclerViewAdapter<User, UserViewHolder>(getContext(), RealmController.initialize(this).getUserMenu(), true) { 
     @Override 
     public UserViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
      return new UserViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.view_user_item, parent, false)); 
     } 

     @Override 
     public void onBindViewHolder(UserViewHolder holder, int position) { 
      User user = getData().get(position); 
      holder.menuTitle.setText(user.getMenuTitle()); 
     } 
    }; 
    recyclerView.setAdapter(adapter); 
関連する問題