2017-02-07 16 views
0

Я новичок в Real programming.I используется Sqlite прежде и теперь я стараюсь, чтобы узнать Realm.I нашел один учебник и все идеальновыбрать из таблицы с заголовком в Realm

this tutorial

Я могу показать все свои ценности в RecyclerView.But у меня есть один question.How я могу вернуть все значения из базы данных, где название равно, например привет и получил я могу показать в RecyclerView Это ява код

@Bind(R.id.edit_title) EditText mEditTitle; 
@Bind(R.id.recycler_view) 
RecyclerView mRecyclerView; 
private Realm mRealm; 

@Override 
public void onCreate(final Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    mRealm = Realm.getInstance(getContext()); 
} 

@Nullable 
@Override 
public View onCreateView(final LayoutInflater inflater, final ViewGroup container, final Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.fragment_edition, container, false); 
    ButterKnife.bind(this, view); 
    return view; 
} 


@Override 
public void onViewCreated(final View view, @Nullable final Bundle savedInstanceState) { 
    super.onViewCreated(view, savedInstanceState); 
    mRecyclerView.setLayoutManager(new LinearLayoutManager(getContext())); 
    mRealm.beginTransaction(); 
    RealmResults<MyBook> books = mRealm.where(MyBook.class).equalTo("title", "Hello").findAll(); 

    mRealm.commitTransaction(); 
    mRecyclerView.setAdapter(new MyListAdapter(mRealm.allObjects(MyBook.class))); 
} 

@Override 
public void onDestroy() { 
    super.onDestroy(); 
    mRealm.close(); 
} 

@OnClick(R.id.button_add) 
public void onAddClick() { 
    mRealm.beginTransaction(); 
    MyBook book = mRealm.createObject(MyBook.class); 
    book.setTitle(getTrimmedTitle()); 
    mRealm.commitTransaction(); 
} 

@OnClick(R.id.button_remove) 
public void onRemoveClick() { 
    mRealm.beginTransaction(); 
    RealmResults<MyBook> books = mRealm.where(MyBook.class).equalTo("title", getTrimmedTitle()).findAll(); 
    if(!books.isEmpty()) { 
     for(int i = books.size() - 1; i >= 0; i--) { 
      books.get(i).removeFromRealm(); 
     } 
    } 
    mRealm.commitTransaction(); 
} 

private String getTrimmedTitle() { 
    return mEditTitle.getText().toString().trim(); 
} 

если кто-нибудь знает решение, пожалуйста, помогите мне. P.s как я уже сказал, что я начинаю программировать в области и хорошие уроки или примеры для меня идеально подходят спасибо всем

ответ

0

Realm работает как любая другая база данных, делает запрос. Это для итератора, но вы можете иметь список

Realm realm = Realm.getDefaultInstance(); 
Iterator all = (MyBook)realm.where(MyBook.class).equalTo("title", "hello").findAll().iterator(); 

Где название это имя переменной в классе MyBook и привет это имя вы ищете

+0

Я написал этот код, и это работа RealmResults books = mRealm.where (MyBook.class) .equalTo ("title", "hello"). FindAll(); mRealm.commitTransaction(); mRecyclerView.setAdapter (новый MyListAdapter (книги)); это правильное решение? @Dinorah Tovar – BekaKK

+0

commitTransaction() - это когда вы пишете в базу данных. Когда вы консультируетесь, вам это не нужно. –

+0

thanks.15 символов – BekaKK