【发布时间】:2018-02-04 07:20:43
【问题描述】:
在我的应用程序中从 moviesdb 读取。我可以将其中任何一个添加为收藏夹,也可以取消收藏它们。这是我的问题。我希望按钮在单击时改变颜色并保持这种状态,直到我稍后回来并且不喜欢这部电影。这是我要更改的代码部分。基本上我说如果isChecked 是true,我说嘿把这部电影添加到数据库中作为收藏夹。如果我再次点击它,我会删除它。
b.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked) {
ContentValues contentValues = new ContentValues();
contentValues.put(FavouriteContract.FavouriteEntry.COLUMN_MOVIE_ID, mMovieId);
contentValues.put(FavouriteContract.FavouriteEntry.COLUMN_MOVIE_POSTER_PATH, mImage);
contentValues.put(FavouriteContract.FavouriteEntry.COLUMN_MOVIE_TITLE, mTitle);
contentValues.put(FavouriteContract.FavouriteEntry.COLUMN_MOVIE_OVERVIEW, mOverview);
contentValues.put(FavouriteContract.FavouriteEntry.COLUMN_MOVIE_RELEASE_DATE, mDate);
contentValues.put(FavouriteContract.FavouriteEntry.COLUMN_MOVIE_VOTE_AVERAGE, mRating);
uri = getActivity().getContentResolver().insert(FavouriteContract.FavouriteEntry.CONTENT_URI, contentValues);
Toast.makeText(getActivity(),"Movie: " + mTitle + " was added", Toast.LENGTH_SHORT).show();
}else{
Uri deleteUri = FavouriteContract.FavouriteEntry.buildMovieUriWithId(mMovieId);
getActivity().getContentResolver().delete(
deleteUri,
null,
null);
Toast.makeText(getActivity(),"Movie deleted from favourites ", Toast.LENGTH_SHORT).show();
}
}
});
有什么想法吗?
谢谢,
西奥。
更新
我尝试了之前的努力,几乎解决了它
我创建了一个可绘制的 xml 文件,
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:state_pressed="false" android:drawable="@drawable/ic_star_black"/>
<item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/ic_star_black" />
<item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/ic_star_black"/>
<item android:drawable="@drawable/ic_star_border" />
然后我将它导入到我的 ToggleButton 中。
<ToggleButton
android:id="@+id/add_favourite"
android:layout_width="46dp"
android:layout_height="46dp"
android:layout_gravity="right"
android:layout_marginRight="45dp"
android:background="@drawable/button_background_selector"
android:textSize="20sp"
android:backgroundTint="@color/colorPrimaryDark"
/>
【问题讨论】: