你好,我有我的自定义 GridViewAdapter
,其中有 7 个语音。
String[] description = new String[]{"test", "test1", "test2", "test3", "test4", "test5", "notification"};
int[] imageId = {
R.mipmap.test,
R.mipmap.test1,
R.mipmap.test2,
R.mipmap.test3,
R.mipmap.test4,
R.mipmap.test5,
R.mipmap.notification,
};
在我的数据库 (mySQL db) 中,我有一个通知表,我知道是否读取了一个通知。 所以我想在元素通知中放置一个徽章,其中包含未读通知的数量。
网格元素的实际布局是:
<de.hdodenhof.circleimageview.CircleImageView xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/image"
android:layout_gravity="center"
android:layout_width="88dp"
android:layout_height="88dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
app:civ_border_width="2dp"
app:civ_border_color="#FF000000"
/>
<TextView
android:id="@+id/description"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
/>
而且我相信如果我在 rowLayout 中添加一个 TextView(如下所示)就可以了
<TextView
android:id="@+id/unread"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
/>
但是使用这种方法我将在所有元素中看到 TextView
。
当通知添加时,如何将此 textView 仅用于一个元素并刷新编号?
我看到这篇文章 https://github.com/leolin310148/ShortcutBadger 和 https://github.com/jgilfelt/android-viewbadger 但似乎已弃用。
我的适配器
是:
public class GridViewDashboardAdapter extends BaseAdapter {
public class Holder
{
TextView tv;
TextView notification;
ImageView img;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
Holder holder = new Holder();
View rowView;
rowView = inflater.inflate(R.layout.dashboard_grid, null);
holder.tv=(TextView) rowView.findViewById(R.id.description);
holder.notification=(TextView) rowView.findViewById(R.id.description);
holder.img=(de.hdodenhof.circleimageview.CircleImageView) rowView.findViewById(R.id.image);
holder.tv.setText(result[position]);
holder.img.setImageResource(imageId[position]);
/* pseudo code */
if(notificationUnread.size()>0){
holder.notification.setVisibility(View.VISIBLE);
}
}
}
最佳答案
尝试替换
android:visible="gone"
到
android:visibility="gone"
在 getView
中,您可以像这样更改可见性:
if (notificationUnread.size()>0){
holder.notification.setVisibility(View.VISIBLE);
} else {
holder.notification.setVisibility(View.GONE);
}
关于android - 在 GridView 中为未读通知添加徽章 Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39567468/