我正在为电影应用程序使用网格视图。当用户单击电影时,将显示该电影的详细信息。在此新活动中,用户可以将电影标记为收藏。我正在使用sharedPreferences来存储复选框的状态(选中或未选中时)。问题是,当我返回到网格视图以选择另一部电影以将其标记为“我的收藏”时,即使我没有明确检查这些电影,网格视图中的所有电影也都显示为“我的收藏”。拜托,这可能是造成这种行为的原因吗?以下是我的详细活动代码:public class MovieDetails extends AppCompatActivity { private static final String SHARED_PF_NAME = "movieSP"; private static final String CHECK_BOX_STATE = "check_state"; private SharedPreferences sharedPreferences; CheckBox checkBox; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.second_details); getSupportActionBar().setTitle("Movie Details"); /*//get values passed from main movie = getIntent().getParcelableExtra(MainActivity.MOVIE_IN_CURRENT_CLICKED_POSITION); // get movie id of the movie that was just passed final int movieIdOfMovieInCurrentlyClicked= movie.getMovieid(); MainActivity(意图代码):gridView.setAdapter(new MovieDisplayAdapter(MainActivity.this, movies)); gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { movieIdOfMovieInCurrentlyClicked = movies.get(position).getMovieid(); moviePosition = position; Intent intent = new Intent(MainActivity.this, MovieDetails.class); //When clicked, the position of the current movie Movie movieIncurrentClickedPosition = movies.get(moviePosition); intent.putExtra(MOVIE_IN_CURRENT_CLICKED_POSITION, movieIncurrentClickedPosition); startActivity(intent); } }); }
2 回答
![?](http://img1.sycdn.imooc.com/5458692c00014e9b02200220-100-100.jpg)
慕码人8056858
TA贡献1803条经验 获得超6个赞
这里的事情是您要保存一个检查状态,因此当您尝试检索该检查状态只是一个检查状态时,您必须通过每个电影的标识符来过滤每个检查状态...因为附加注释更好将该信息存储在本地数据库的电影对象中,因此您只需执行简单的查询即可更新和检索该状态
添加回答
举报
0/150
提交
取消