【发布时间】:2016-10-12 06:44:22
【问题描述】:
我有一个 RecyclerViewActivity 和 RecyclerView 的数据:
// get a reference to recyclerView
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
// this is data for recyclerview
CardData cardData[] = {
new CardData("Bread", R.drawable.bread),
new CardData("Dairy", R.drawable.dairy),
new CardData("Meat", R.drawable.meat) ...}
每个 CardData 都通过简单的 ListView 连接到不同的 Activity。
现在我使用 Shared Preferences 和布尔变量来检查每个 ListView 中是否有一些项目。检查完成后 - 将 true/false 值传递给 RecyclerViewActivity:
SharedPreferences pref = getSharedPreferences("filename", MODE_PRIVATE);
Boolean a = pref.getBoolean("key1", false);
Boolean b = pref.getBoolean("key2", false);
Boolean c = pref.getBoolean("key3", false);
现在我需要做的是 根据 a/b/c 值显示 CardData。如果我收到 a: true - 需要在我的数据集中显示一些额外的图像指示符。 像这样:
CardData cardData[] = {
if (!a) {
new CardData("Bread", R.drawable.bread, R.drawable.indicator)
}
else {
new CardData("Bread", R.drawable.bread) };
if (!b) {
new CardData("Dairy", R.drawable.dairy, R.drawable.indicator)
}
else {
new CardData("Dairy", R.drawable.dairy};
...
}
问题是我现在不知道在哪里以及如何设置这个条件。在上面的 CardData 内部它不起作用 - 给我一个语法错误..
任何帮助将不胜感激!
【问题讨论】:
-
这就是我的理解——你试图将
CardData对象添加到数组中,而构造函数的选择取决于布尔值 a、b、c 的值。对吗? -
是的。我想根据 a,b,c 的值添加它们
标签: java android arrays if-statement