これは私の初めてのstackoverflowに関する質問です。チャットアプリケーションの「送信」ボタンが機能しない
私はポイントにまっすぐ行くよ、私は現在firebaseを使用してチャットルームを作成伴うアプリケーションを開発しています、私はこの
https://www.youtube.com/watch?v=uX6_w6yhj4E
を発見し、彼に従うことにしました。私がコードを完成させて実行しようとするまで、すべてがスムーズに進んでいました。私のメッセージをチャットルームに表示すると思われる送信ボタンを除いて、すべてが期待どおりに機能していました。私がそれをタップしても、私の送信ボタンは応答しませんでした。私は問題を見つけるように見えない。ここで
はchat_roomのための私のコードです:
public class Chat_Room extends AppCompatActivity {
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.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);
message_root.setValue(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");
}
}
}
私はまだ両方で新人だとして本当に助けを感謝し、私は何か間違ったことをした場合、または提供された情報が十分ではなかった場合、私に教えてくださいアンドロイドスタジオとファイアベース。前もって感謝します。
それでも同じ問題:( – Zephyros
あなたのコードを投稿することができますが、ちょうどあなたの質問を更新し –
更新、私は唯一のsetValueするupdateChildrenを変更 – Zephyros