2017-05-11 1 views
0

Je crée une application de chat dans laquelle les utilisateurs ne peuvent pas envoyer de messages vides. Avant d'envoyer un message, le toast affiche "champ vide". Je veux montrer un toast seulement lorsque les utilisateurs essaient d'envoyer un message lorsque le champ est vide. Que faire?Toast montre avant d'envoyer le message

public class chat_app extends AppCompatActivity{ 

    InterstitialAd mInterstitialAd; 
    private InterstitialAd interstitial; 

    private Button btn_send_msg; 
    private EditText input_msg; 
    private TextView chat_conversation; 

    private String user_name,room_name; 
    private DatabaseReference root ; 
    private String temp_key; 

    @Override 
    protected void onCreate(@Nullable Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_chat_room); 

     btn_send_msg = (Button) findViewById(R.id.btn_send); 
     input_msg = (EditText) findViewById(R.id.msg_input); 
     chat_conversation = (TextView) findViewById(R.id.textView); 
     user_name = getIntent().getExtras().get("user_name").toString(); 
     room_name = getIntent().getExtras().get("room_name").toString(); 
     setTitle(" Room - "+room_name); 


     root = FirebaseDatabase.getInstance().getReference().child(room_name); 

     btn_send_msg.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 

       Map<String,Object> map = new HashMap<String, Object>(); 
       temp_key = root.push().getKey(); 
       root.updateChildren(map); 

       DatabaseReference message_root = root.child(temp_key); 
       Map<String,Object> map2 = new HashMap<String, Object>(); 
       map2.put("name",user_name); 
       map2.put("msg",input_msg.getText().toString()); 

       message_root.updateChildren(map2); 

      } 


     }); 

     root.addChildEventListener(new ChildEventListener() { 
      @Override 
      public void onChildAdded(DataSnapshot dataSnapshot, String s) { 

       append_chat_conversation(dataSnapshot); 
      } 

      @Override 
      public void onChildChanged(DataSnapshot dataSnapshot, String s) { 

       append_chat_conversation(dataSnapshot); 

      } 

      @Override 
      public void onChildRemoved(DataSnapshot dataSnapshot) { 

      } 

      @Override 
      public void onChildMoved(DataSnapshot dataSnapshot, String s) { 

      } 

      @Override 
      public void onCancelled(DatabaseError databaseError) { 

      } 

     }); 

    } 


    private String chat_msg,chat_user_name; 

    private void append_chat_conversation(DataSnapshot dataSnapshot) { 

     Iterator i = dataSnapshot.getChildren().iterator(); 

     while (i.hasNext()){ 

      chat_msg = (String) ((DataSnapshot)i.next()).getValue(); 
      chat_user_name = (String) ((DataSnapshot)i.next()).getValue(); 

      chat_conversation.append(chat_user_name +" : "+chat_msg +" \n\n"); 
      input_msg.setText(""); 
      if(TextUtils.isEmpty(chat_msg)) { 
       Toast.makeText(this, "Empty field ", Toast.LENGTH_SHORT).show(); 
       return; 
      } 
     } 
` 

Répondre

0

vous devez vérifier avant d'envoyer j'envisage btnsend est l'endroit où vous envoyer un message

btn_send_msg.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 

      if(input_msg.getText().toString().trim().length>0)**///considering input is your editetxt of message to send** 
      { 
       Map<String,Object> map = new HashMap<String, Object>(); 
       temp_key = root.push().getKey(); 
       root.updateChildren(map); 

       DatabaseReference message_root = root.child(temp_key); 
       Map<String,Object> map2 = new HashMap<String, Object>(); 
       map2.put("name",user_name); 
       map2.put("msg",input_msg.getText().toString()); 

       message_root.updateChildren(map2); 
      } 
      else 
      { 
       **///show empty toast here** 
      } 



      } 


     }); 
0

vérifier votre valeur de modification de texte dans onclik méthode si elle est du pain grillé spectacle vide msg

btn_send_msg.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      if(input_msg.getText().toString().equals("")){ 

      // Toast msg here 

      }else{ 
      Map<String,Object> map = new HashMap<String, Object>(); 
      temp_key = root.push().getKey(); 
      root.updateChildren(map); 

      DatabaseReference message_root = root.child(temp_key); 
      Map<String,Object> map2 = new HashMap<String, Object>(); 
      map2.put("name",user_name); 
      map2.put("msg",input_msg.getText().toString()); 

      message_root.updateChildren(map2); 
      } 
     } 


    }); 
0
btn_send_msg.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     String message = input_msg.getText().toString().trim(); //Throw gaps 
     if(message.equals("")){ 

     // Toast msg here 

     }else{ 
     Map<String,Object> map = new HashMap<String, Object>(); 
     temp_key = root.push().getKey(); 
     root.updateChildren(map); 

     DatabaseReference message_root = root.child(temp_key); 
     Map<String,Object> map2 = new HashMap<String, Object>(); 
     map2.put("name",user_name); 
     map2.put("msg",input_msg.getText().toString()); 

     message_root.updateChildren(map2); 
     } 
    } 


}); 
0

Ajouter l'enregistrement de vos send boutons onClick() méthode:

btn_send_msg.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 

      String message = input_msg.getText().toString(); 

      if (TextUtils.isEmpty(message)) { 
       Toast.makeText(getApplicationContext(), "Empty field", Toast.LENGTH_SHORT).show(); 
      } else { 
       Map<String,Object> map = new HashMap<String, Object>(); 
       temp_key = root.push().getKey(); 
       root.updateChildren(map); 

       DatabaseReference message_root = root.child(temp_key); 
       Map<String,Object> map2 = new HashMap<String, Object>(); 
       map2.put("name", user_name); 
       map2.put("msg", message); 

       message_root.updateChildren(map2); 
      } 
    }); 

Et votre méthode append_chat_conversation() comme ci-dessous:

private void append_chat_conversation(DataSnapshot dataSnapshot) { 

    Iterator i = dataSnapshot.getChildren().iterator(); 

    while (i.hasNext()){ 

     chat_msg = (String) ((DataSnapshot)i.next()).getValue(); 
     chat_user_name = (String) ((DataSnapshot)i.next()).getValue(); 

     chat_conversation.append(chat_user_name +" : "+chat_msg +" \n\n"); 

    } 

}