Почему нажатие события в фрагменте возвращает к последнему действию без каких-либо инструкций, указанных в setOnClickListener в Android? - PullRequest
0 голосов
/ 02 мая 2020

Этот вопрос является продолжением предыдущего вопроса здесь. Первый вопрос

Таким образом, вошедшие в систему имена пользователей и чата больше не возвращают нуль, и данные также вставляются в firebase. Однако действие setOnClickListener возвращает предыдущее действие UsersList. java, даже если в функции sendImgView.setOnClickListener () такого намерения не указано.

UserList. java соответствующий код принимает ChatActivity, как вы можете видеть, а также я заканчиваю sh () его щелчком -

usersList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
            // TODO Auto-generated method stub




           Intent goChatActivity = new Intent(UserList.this, ChatActivity.class);


            String currentUser = "Abdul";
            String chatBuddy = "Razzak";

            goChatActivity.putExtra("currentUser", currentUser);
            goChatActivity.putExtra("chatBuddy", chatBuddy);
            startActivity(goChatActivity);
            finish(); **//finishing UsersList here**

        }
    });

и в SendMsgFragment. java после вставки данных в firebase я делаю getActivity (). fini sh (); но действие sendImgView.setOnClickListener, возвращающее к UsersList. java, откуда я пришел в SendMsgFragment, используя Intent. Как предотвратить это -

SendMsgFragment. java соответствующий код -

    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

        view = inflater.inflate(R.layout.send_msg_fragment, container, false);
        sendImgView = (ImageView) view.findViewById(R.id.sendButton);
   sendImgView.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                try {
                    currentUser = getArguments().getString("currentUser");
                    chatBuddy = getArguments().getString("chatBuddy");
                }catch (Exception ex){
                    ex.printStackTrace();
                }
                Chat chat = new Chat(chatEditText.getText().toString(), cal.getTime().toString());
                databaseReference.child(currentUser+"/"+currentUser+"_"+chatBuddy).push().setValue(chat);
                chatEditText.setText("");
                getActivity().finish(); //finishing ChatActivity where I load this fragment
            }
        });
        return view;
    }
...