聊天中的发送按钮应用程序不起作用

时间:2018-01-06 14:50:07

标签: android database string listview firebase-realtime-database

OnCreate方法

LinearLayout layout;
ImageView sendButton;
EditText messageArea;
ScrollView scrollView;
Firebase reference1, reference2;

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

    layout = (LinearLayout)findViewById(R.id.layout1);
    sendButton = (ImageView)findViewById(R.id.sendButton);
    messageArea = (EditText)findViewById(R.id.messageArea);
    scrollView = (ScrollView)findViewById(R.id.scrollView);

    Firebase.setAndroidContext(this);
    reference1 = new Firebase("https://messageplus-cd647.firebaseio.com/Messages/" + UserDetails.phonenumber + "_" + UserDetails.chatWith);
    reference2 = new Firebase("https://messageplus-cd647.firebaseio.com/messages/" + UserDetails.chatWith + "_" + UserDetails.phonenumber);

    sendButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String messageText = messageArea.getText().toString();

            if(!messageText.equals("")){
                Map<String, String> map = new HashMap<String, String>();
                map.put("message", messageText);
                map.put("user", UserDetails.phonenumber);
                reference1.push().setValue(map);
                reference2.push().setValue(map);
            }
        }
    });

    reference1.addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {
            Map map = dataSnapshot.getValue(Map.class);
            String message = map.get("message").toString();
            String userName = map.get("user").toString();

            if(userName.equals(UserDetails.phonenumber)){
                addMessageBox("You:-\n" + message, 1);
            }
            else{
                addMessageBox(UserDetails.chatWith + ":-\n" + message, 2);
            }
        }

    });
}

addMessageBox方法

 public void addMessageBox(String message, int type){
    TextView textView = new TextView(Chat.this);
    textView.setText(message);
    LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
    lp.setMargins(0, 0, 0, 10);
    textView.setLayoutParams(lp);

    if(type == 1) {
        textView.setBackgroundResource(R.drawable.rounded_corner1);
    }
    else{
        textView.setBackgroundResource(R.drawable.rounded_corner2);
    }

    layout.addView(textView);
    scrollView.fullScroll(View.FOCUS_DOWN);
}
}

XML文件似乎很好......还是初学者。试图创建一个简单的聊天应用程序...手机身份验证工作,我有活动,用户更新他的个人资料和细节,这也很好。然后,他进入联系人列表并点击要定向到此聊天屏幕的联系人。但是当我输入一条消息时,它要么添加到数据库中,要么在列表视图中显示。我做错了什么?请帮忙

0 个答案:

没有答案