2017-05-20 3 views

Antwort

0

versuchen, mit diesem Code:

public class NotifyListAdapter extends BaseAdapter implements Constants { 

     private Activity activity; 
     private LayoutInflater inflater; 
     private List<Notify> notifyList; 

     ImageLoader imageLoader = App.getInstance().getImageLoader(); 

     public NotifyListAdapter(Activity activity, List<Notify> notifyList) { 

      this.activity = activity; 
      this.notifyList = notifyList; 
     } 

     @Override 
     public int getCount() { 

      return notifyList.size(); 
     } 

     @Override 
     public Object getItem(int location) { 

      return notifyList.get(location); 
     } 

     @Override 
     public long getItemId(int position) { 

      return position; 
     } 

     static class ViewHolder { 

      public TextView notifyTitle; 
      public TextView notifyTimeAgo; 
      public CircularImageView notifyAuthor; 
      public CircularImageView notifyType; 

     } 

     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 

      ViewHolder viewHolder = null; 

      if (inflater == null) { 

       inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      } 

      if (convertView == null) { 

       convertView = inflater.inflate(R.layout.notify_list_row, null); 

       viewHolder = new ViewHolder(); 

       viewHolder.notifyAuthor = (CircularImageView) convertView.findViewById(R.id.notifyAuthor); 
       viewHolder.notifyType = (CircularImageView) convertView.findViewById(R.id.notifyType); 
       viewHolder.notifyTitle = (TextView) convertView.findViewById(R.id.notifyTitle); 
       viewHolder.notifyTimeAgo = (TextView) convertView.findViewById(R.id.notifyTimeAgo); 

       convertView.setTag(viewHolder); 

      } else { 

       viewHolder = (ViewHolder) convertView.getTag(); 
      } 

      if (imageLoader == null) { 

       imageLoader = App.getInstance().getImageLoader(); 
      } 

      viewHolder.notifyTitle.setTag(position); 
      viewHolder.notifyTimeAgo.setTag(position); 
      viewHolder.notifyAuthor.setTag(position); 
      viewHolder.notifyType.setTag(position); 
      viewHolder.notifyAuthor.setTag(R.id.notifyAuthor, viewHolder); 

      final Notify notify = notifyList.get(position); 

      viewHolder.notifyType.setVisibility(View.GONE); 

      if (notify.getType() == NOTIFY_TYPE_LIKE) { 

       viewHolder.notifyTitle.setText(activity.getText(R.string.label_gcm_like)); 
       viewHolder.notifyType.setImageResource(R.drawable.notify_like); 

       viewHolder.notifyAuthor.setImageResource(R.drawable.notify_like); 

      } else if (notify.getType() == NOTIFY_TYPE_COMMENT) { 

       viewHolder.notifyTitle.setText(activity.getText(R.string.label_gcm_comment)); 
       viewHolder.notifyType.setImageResource(R.drawable.notify_comment); 

       viewHolder.notifyAuthor.setImageResource(R.drawable.notify_comment); 

      } else if (notify.getType() == NOTIFY_TYPE_COMMENT_REPLY) { 

       viewHolder.notifyTitle.setText(activity.getText(R.string.label_gcm_comment_reply)); 
       viewHolder.notifyType.setImageResource(R.drawable.notify_reply); 

       viewHolder.notifyAuthor.setImageResource(R.drawable.notify_reply); 

      } else { 

       viewHolder.notifyTitle.setText(activity.getText(R.string.label_follow_you)); 
       viewHolder.notifyType.setImageResource(R.drawable.notify_follower); 

       viewHolder.notifyAuthor.setImageResource(R.drawable.notify_follower); 
      } 

      viewHolder.notifyTimeAgo.setText(notify.getTimeAgo()); 

      return convertView; 
     } 
    } 
0

Sie normalerweise Messaging für diese Verwendung Thema würde. Mit Themen würde Ihr Benutzer das Thema pet_type_dog abonnieren. Auf Android würde dies wie folgt aussehen:

FirebaseMessaging.getInstance().subscribeToTopic("pet_type_dog"); 

Dann senden Sie eine Nachricht an alle Benutzer mit Haustier Typ gleich Hund. Mit dem JavaScript-Admin-SDK, das wie folgt aussehen würde:

+0

Ich werde eine blutbezogene Android-App machen ...... ein Benutzer wird sich registrieren, um seine Blutgruppe und seinen Standort zu füllen. Es wird auch ein Anfrageteil in der Firebase-Datenbank geben. Wenn ein Benutzer eine spezifische Blutgruppe an einem bestimmten Ort anfordert, sollte automatisch eine Push-Benachrichtigung an die Benutzer gesendet werden, die diese Blutgruppe an diesem Ort haben zu Firebase Cloud-Funktionen und Push-Benachrichtigung für das. bitte schlagen Sie mir vor, wie kann ich das tun. –

+0

Meine Antwort zeigt den Ansatz und den Großteil des Codes, den Sie dafür benötigen. Bitte versuchen Sie die Lösung und sagen Sie, mit welchem ​​Teil Sie Probleme haben. –

0

Zuerst müssen Sie die Zielgruppe in Analytics angeben, wer Haustier Hund enthält.

enter image description here Screenshot ist Beispiel von mir

Firebase Cloud Messaging (FCM) bietet drei verschiedene Arten von Zielen, die Sie Push-Benachrichtigungen an eine bestimmte Benutzergruppe zu senden. Die drei Arten von Zielen sind: Benutzersegment, Thema und einzelnes Gerät.

enter image description here Screenshot ist Beispiel von mir

Benutzer Segment können Sie eine App zum Aussenden von Push-Benachrichtigungen wählen. Klicken Sie auf "UND", um weitere Filterregeln hinzuzufügen.

In Publikum - Sie können Push-Benachrichtigungen an die Benutzer senden, die Haustier Hund haben.

Verwandte Themen