Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用onClick将用户发送到ChatActivity_Java_Android_Onclick_Onclicklistener - Fatal编程技术网

Java 如何使用onClick将用户发送到ChatActivity

Java 如何使用onClick将用户发送到ChatActivity,java,android,onclick,onclicklistener,Java,Android,Onclick,Onclicklistener,我正在创建聊天应用程序,并向用户显示他们的联系人。现在,用户可以看到他们所有联系人的图像名称和状态。但当用户点击联系人时,我希望他们进入聊天活动。现在我被困住了,因为我不知道如何给他们发邮件 我试过这个 mAuth.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { } }); 但是它不起作用,setOnClic

我正在创建聊天应用程序,并向用户显示他们的联系人。现在,用户可以看到他们所有联系人的图像名称和状态。但当用户点击联系人时,我希望他们进入聊天活动。现在我被困住了,因为我不知道如何给他们发邮件

我试过这个

mAuth.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {


        }
    });
但是它不起作用,
setOnClickListener
是红色的。有人能帮忙吗

编辑

我尝试了以下两个答案,但都没有帮到我。当我把这些积木

 class chatLink implements View.OnClickListener {

            @Override
            public void onClick(View v) {

                SendUserToChatActivity();

            }
        }

        private void SendUserToChatActivity() {

            Intent mainIntent = new Intent(ContactsFragment.this, MainActivity.class);
            mainIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
            startActivity(mainIntent);
            finish();
        }
我在这里得到一条红线
Intent maintent=newintent(ContactsFragment.this,MainActivity.class)

这是更新后的代码(我仍在试图找到一种方法)

私人查看联系人视图;
私人回收站查看myContactsList;
私有数据库引用ContacsRef,UsersRef;
私人消防队;
私有字符串currentUserID;
公共联系人片段(){
//必需的空公共构造函数
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
//为该碎片膨胀布局
ContactsView=充气机。充气(R.layout.fragment_触点,容器,假);
myContactsList=(RecyclerView)ContactsView.findViewById(R.id.contacts\u列表);
setLayoutManager(新的LinearLayoutManager(getContext());
mAuth=FirebaseAuth.getInstance();
currentUserID=mAuth.getCurrentUser().getUid();
ContacsRef=FirebaseDatabase.getInstance().getReference().child(“联系人”).child(currentUserID);
UsersRef=FirebaseDatabase.getInstance().getReference().child(“用户”);
返回联系人视图;
}
@凌驾
public void onStart(){
super.onStart();
FirebaseRecyclerOptions选项=
新的FirebaseRecyclerOptions.Builder()
.setQuery(ContacsRef,Contacts.class)
.build();
FirebaseRecyclerAdapter适配器
=新的FirebaseRecyclerAdapter(选项){
@凌驾
受保护的无效onBindViewHolder(@NonNull最终联系人VIEWHOLDER holder,int位置,@NonNull联系人模型){
字符串userid=getRef(position).getKey();
UsersRef.child(userid).addValueEventListener(新的ValueEventListener(){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
if(dataSnapshot.exists()){
if(dataSnapshot.child(“userState”).hasChild(“state”)){
字符串状态=(dataSnapshot.child(“userState”).child(“state”)).getValue().toString();
字符串日期=(dataSnapshot.child(“userState”).child(“date”).getValue().toString();
字符串时间=(dataSnapshot.child(“userState”).child(“time”)).getValue().toString();
if(state.equals(“在线”)){
holder.onlineIcon.setVisibility(View.VISIBLE);
}
else if(state.equals(“脱机”)){
holder.onlineIcon.setVisibility(视图.不可见);
}
}否则{
holder.userStatus.setText(“脱机”);
}
if(dataSnapshot.hasChild(“图像”)){
字符串userImage=dataSnapshot.child(“image”).getValue().toString();
String profileName=dataSnapshot.child(“name”).getValue().toString();
字符串profileStatus=dataSnapshot.child(“status”).getValue().toString();
holder.userName.setText(profileName);
holder.userStatus.setText(profileStatus);
Picasso.get().load(userImage).placeholder(R.drawable.profile\u image).into(holder.profileImage);
}
否则{
String profileName=dataSnapshot.child(“name”).getValue().toString();
字符串profileStatus=dataSnapshot.child(“status”).getValue().toString();
holder.userName.setText(profileName);
holder.userStatus.setText(profileStatus);
}
}
}
@凌驾
已取消的公共void(@NonNull DatabaseError DatabaseError){
}
});
}
@非空
@凌驾
公共联系人ViewHolder onCreateViewHolder(@NonNull ViewGroup ViewGroup,int i){
View View=LayoutInflater.from(viewGroup.getContext()).flate(R.layout.users\u display\u布局,viewGroup,false);
ContactsViewHolder=新的ContactsViewHolder(视图);
返回视图持有者;
}
类chatLink实现View.OnClickListener{
@凌驾
公共void onClick(视图v){
SendUserToChatActivity();
}
}
私有void SendUserToChatActivity(){
Intent maintent=新的Intent(getApplication(),MainActivity.class);
maintent.addFlags(Intent.FLAG_活动_新任务| Intent.FLAG_活动_清除任务);
星触觉(主旨);
}
};
myContactsList.setAdapter(适配器);
adapter.startListening();
}
公共静态类ContactsViewHolder扩展了RecyclerView.ViewHolder{
TextView用户名、userStatus;
圆形图像查看轮廓图像;
ImageView在线图标;
公共联系人查看文件夹(@NonNull View itemView){
超级(项目视图);
userName=itemView.findviewbyd(R.id.user\u profile\u name);
userStatus=itemView.findviewbyd(R.id.user\u status);
profileImage=itemView.findviewbyd(R.id.users\u profile\u image);
onlineIcon=(ImageVie
  private View ContactsView;
private RecyclerView myContactsList;

private DatabaseReference ContacsRef, UsersRef;
private FirebaseAuth mAuth;

private String currentUserID;

public ContactsFragment() {
    // Required empty public constructor
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    ContactsView = inflater.inflate(R.layout.fragment_contacts, container, false);

    myContactsList = (RecyclerView) ContactsView.findViewById(R.id.contacts_list);
    myContactsList.setLayoutManager(new LinearLayoutManager(getContext()));

    mAuth = FirebaseAuth.getInstance();
    currentUserID = mAuth.getCurrentUser().getUid();

    ContacsRef = FirebaseDatabase.getInstance().getReference().child("Contacts").child(currentUserID);
    UsersRef = FirebaseDatabase.getInstance().getReference().child("Users");

    return ContactsView;
}

@Override
public void onStart() {
    super.onStart();

    FirebaseRecyclerOptions options =
            new FirebaseRecyclerOptions.Builder<Contacts>()
                    .setQuery(ContacsRef, Contacts.class)
                    .build();

    FirebaseRecyclerAdapter<Contacts, ContactsViewHolder> adapter
            = new FirebaseRecyclerAdapter<Contacts, ContactsViewHolder>(options) {
        @Override
        protected void onBindViewHolder(@NonNull final ContactsViewHolder holder, int position, @NonNull Contacts model) {

            String userIDs = getRef(position).getKey();

            UsersRef.child(userIDs).addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                    if(dataSnapshot.exists()){

                        if(dataSnapshot.child("userState").hasChild("state")){

                            String state = (dataSnapshot.child("userState").child("state")).getValue().toString();
                            String date = (dataSnapshot.child("userState").child("date")).getValue().toString();
                            String time = (dataSnapshot.child("userState").child("time")).getValue().toString();

                            if(state.equals("online")){

                                holder.onlineIcon.setVisibility(View.VISIBLE);

                            }

                            else if(state.equals("offline")){

                                holder.onlineIcon.setVisibility(View.INVISIBLE);

                            }

                        } else {

                            holder.userStatus.setText("offline");

                        }

                        if(dataSnapshot.hasChild("image")){

                            String userImage = dataSnapshot.child("image").getValue().toString();
                            String profileName = dataSnapshot.child("name").getValue().toString();
                            String profileStatus = dataSnapshot.child("status").getValue().toString();

                            holder.userName.setText(profileName);
                            holder.userStatus.setText(profileStatus);
                            Picasso.get().load(userImage).placeholder(R.drawable.profile_image).into(holder.profileImage);

                        }
                        else{

                            String profileName = dataSnapshot.child("name").getValue().toString();
                            String profileStatus = dataSnapshot.child("status").getValue().toString();

                            holder.userName.setText(profileName);
                            holder.userStatus.setText(profileStatus);
                        }
                    }

                }

                @Override
                public void onCancelled(@NonNull DatabaseError databaseError) {

                }
            });
        }

        @NonNull
        @Override
        public ContactsViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {

            View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.users_display_layout, viewGroup, false);
            ContactsViewHolder viewHolder = new ContactsViewHolder(view);
            return viewHolder;
        }

        class chatLink implements View.OnClickListener {

            @Override
            public void onClick(View v) {

                SendUserToChatActivity();

            }
        }

        private void SendUserToChatActivity() {

            Intent mainIntent = new Intent(getApplication(), MainActivity.class);
            mainIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
            startActivity(mainIntent);
        }
    };

    myContactsList.setAdapter(adapter);
    adapter.startListening();
}

public static class ContactsViewHolder extends RecyclerView.ViewHolder {

    TextView userName, userStatus;
    CircleImageView profileImage;
    ImageView onlineIcon;

    public ContactsViewHolder(@NonNull View itemView) {
        super(itemView);

        userName = itemView.findViewById(R.id.user_profile_name);
        userStatus = itemView.findViewById(R.id.user_status);
        profileImage = itemView.findViewById(R.id.users_profile_image);
        onlineIcon = (ImageView) itemView.findViewById(R.id.user_online_status);
    }
}
import android.view.View.OnClickListener;
class yourClass implements View.OnClickListener {

@Override           
public void onClick(View v) {
    //Views clicks go here           
    }
}
 Intent mainIntent = new Intent(ContactsFragment.this, MainActivity.class);
 Intent mainIntent = new Intent(context, MainActivity.class);
 Intent mainIntent = new Intent(MyActivityThatContainsThisFragment, MainActivity.class);
import android.view.View.OnClickListener;

public static class ContactsViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
...some other code
ContactsViewHolder(View itemView){
// some code

// setting click listener on complete row
itemView.setOnClickListener(this);
}



@Override
public void onClick(View v){ 
Intent i = new Intent(v.getContext(),ChatActivity.class);
v.getContext().startActivity(i);
}
 class chatLink implements View.OnClickListener {

            @Override
            public void onClick(View v) {
//Resolve error 
// you can also use class of fragment i.e. Fragment.this.getContext()
                SendUserToChatActivity(v.getContext());

            }
        }

        private void SendUserToChatActivity(Context ctx) {

            Intent mainIntent = new Intent(ctx, MainActivity.class);
            mainIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
            startActivity(mainIntent);
            finish();
        }
Intent mainIntent = new Intent(**getContext()**, MainActivity.class);
mainIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(mainIntent);
finish();
holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent i = new Intent(getContext(), ChatActivity.class);
                i.putExtra("visit_user_id", userIDs);
                i.putExtra("visit_user_name", profileName);
                i.putExtra("visit_image", userImage);
                startActivity(i);
            }
       });
 @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        ContactsView = inflater.inflate(R.layout.fragment_contacts, container, false);

        myContactsList = (RecyclerView) ContactsView.findViewById(R.id.contacts_list);
        myContactsList.setLayoutManager(new LinearLayoutManager(getContext()));

        mAuth = FirebaseAuth.getInstance();
        currentUserID = mAuth.getCurrentUser().getUid();

        ContacsRef = FirebaseDatabase.getInstance().getReference().child("Contacts").child(currentUserID);
        UsersRef = FirebaseDatabase.getInstance().getReference().child("Users");

        return ContactsView;
    }

    @Override
    public void onStart() {
        super.onStart();

        FirebaseRecyclerOptions options =
                new FirebaseRecyclerOptions.Builder<Contacts>()
                        .setQuery(ContacsRef, Contacts.class)
                        .build();


        FirebaseRecyclerAdapter<Contacts, ContactsViewHolder> adapter
                = new FirebaseRecyclerAdapter<Contacts, ContactsViewHolder>(options) {
            @Override
            protected void onBindViewHolder(@NonNull final ContactsViewHolder holder, final int position, @NonNull Contacts model) {

                final String userIDs = getRef(position).getKey();


                UsersRef.child(userIDs).addValueEventListener(new ValueEventListener() {
                    @Override
                    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                        if (dataSnapshot.exists()) {

                            if (dataSnapshot.child("userState").hasChild("state")) {

                                String state = (dataSnapshot.child("userState").child("state")).getValue().toString();
                                String date = (dataSnapshot.child("userState").child("date")).getValue().toString();
                                String time = (dataSnapshot.child("userState").child("time")).getValue().toString();

                                if (state.equals("online")) {

                                    holder.onlineIcon.setVisibility(View.VISIBLE);

                                } else if (state.equals("offline")) {

                                    holder.onlineIcon.setVisibility(View.INVISIBLE);

                                }

                            } else {

                                holder.userStatus.setText("offline");

                            }

                            if (dataSnapshot.hasChild("image")) {

                                userImage = dataSnapshot.child("image").getValue().toString();
                                profileName = dataSnapshot.child("name").getValue().toString();
                                profileStatus = dataSnapshot.child("status").getValue().toString();


                                holder.userName.setText(profileName);
                                holder.userStatus.setText(profileStatus);
                                Picasso.get().load(userImage).placeholder(R.drawable.profile_image).into(holder.profileImage);

                            } else {

                                profileName = dataSnapshot.child("name").getValue().toString();
                                profileStatus = dataSnapshot.child("status").getValue().toString();

                                holder.userName.setText(profileName);
                                holder.userStatus.setText(profileStatus);
                            }
                        }

                    }

                    @Override
                    public void onCancelled(@NonNull DatabaseError databaseError) {

                    }
                });

                holder.itemView.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        Intent i = new Intent(getContext(), ChatActivity.class);
                        i.putExtra("visit_user_id", userIDs);
                        i.putExtra("visit_user_name", profileName);
                        i.putExtra("visit_image", userImage);
                        startActivity(i);
                    }
                });
            }

            @NonNull
            @Override
            public ContactsViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {

                View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.users_display_layout, viewGroup, false);
                ContactsViewHolder viewHolder = new ContactsViewHolder(view);
                return viewHolder;
            }
        };

        myContactsList.setAdapter(adapter);
        adapter.startListening();
    }

    public static class ContactsViewHolder extends RecyclerView.ViewHolder {

        TextView userName, userStatus;
        CircleImageView profileImage;
        ImageView onlineIcon;

        public ContactsViewHolder(@NonNull View itemView) {
            super(itemView);

            userName = itemView.findViewById(R.id.user_profile_name);
            userStatus = itemView.findViewById(R.id.user_status);
            profileImage = itemView.findViewById(R.id.users_profile_image);
            onlineIcon = (ImageView) itemView.findViewById(R.id.user_online_status);
        }
    }