Кто-нибудь может сказать мне, в чем проблема с этим приложением для группового чата, пожалуйста - PullRequest
0 голосов
/ 14 июля 2020

Я пытаюсь создать приложение группового чата, но при нажатии на кнопку отправки сообщение не отправляется. Кто-нибудь может сказать мне, что не так с моим приложением для группового чата?

Вот основная активность xml файл:

  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
tools:context=".MainActivity">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvmessage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_marginBottom="45dp"/>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentBottom="true"
        android:background="#147A18"
        android:paddingTop="5dp">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">



            <EditText
                android:id="@+id/message"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:ems="10"
                android:hint="Enter message"
                android:inputType="textPersonName"
                android:textColor="#FF5722" />

            <ImageButton
                android:id="@+id/imageButton"
                android:layout_width="45dp"
                android:layout_height="45dp"
                android:layout_weight="1"
                android:background="#A5DD64"
                app:srcCompat="@android:drawable/ic_menu_send" />
        </LinearLayout>
    </RelativeLayout>

</RelativeLayout>

это сообщение элемента xml файл:

 <LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">


<androidx.cardview.widget.CardView
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

<LinearLayout
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:background="@color/colorPrimary"
            android:orientation="horizontal"
            android:id="@+id/l1Message"
            >
            <TextView
                android:layout_width="match_parent"
                android:layout_height="45dp"
                android:textColor="#FFFFFF"
                android:textSize="18sp"
                android:id="@+id/tvTitle"
                android:text="  Random text"
                android:padding="5dp"
                android:layout_weight="1"
                />
            <ImageButton
                android:layout_width="45dp"
                android:layout_height="45dp"
                android:id="@+id/delete"
                android:background="@color/colorPrimary"
                android:src="@android:drawable/ic_delete"

                />





        </LinearLayout>


     </LinearLayout>
   </androidx.cardview.widget.CardView>
 </LinearLayout>

здесь mainActivity java class:

public class MainActivity extends AppCompatActivity implements View.OnClickListener{
FirebaseAuth fAuth;
DatabaseReference messagedb;
FirebaseDatabase database;
MessageAdapter messageAdapter;
List<Message> messages;
RecyclerView rvMessage;
EditText enterMess;
ImageButton imagebtn;

User u;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    init();
}

private void init()
{
   // fAuth     = FirebaseAuth.getInstance();
    database  = FirebaseDatabase.getInstance();
    enterMess = findViewById(R.id.message);
    rvMessage = findViewById(R.id.rvmessage);
    imagebtn  = findViewById(R.id.imageButton);
    imagebtn.setOnClickListener(this);
    messages =new ArrayList<>();

}

@Override
public void onClick(View v) {

}
// Initialize Firebase Auth

@Override
protected void onStart() {
    super.onStart();
    final FirebaseUser curruser =fAuth.getCurrentUser();
    if(curruser != null) {
    u.setUid(curruser.getUid());
    u.setEmail(curruser.getEmail());
    database.getReference("Users").child(curruser.getUid()).addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            u=dataSnapshot.getValue(User.class);
            u.setUid(curruser.getUid());
            AllMethods.name= u.getName();

        }

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

        }
    });
    messagedb = database.getReference("messages");
    messagedb.addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
            Message message = dataSnapshot.getValue(Message.class);
            message.setKey(dataSnapshot.getKey());
            messages.add(message);
            displayMessages(messages);
        }

        @Override
        public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
            Message message = dataSnapshot.getValue(Message.class);
            message.setKey(dataSnapshot.getKey());

        }

        @Override
        public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {

        }

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

        }

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

        }
    });
}}

private void displayMessages(List<Message> messages)
{
    rvMessage.setLayoutManager(new LinearLayoutManager(MainActivity.this));
    //  rvMessage.setHasFixedSize(true);
    messageAdapter = new MessageAdapter(MainActivity.this,messages,messagedb);
    rvMessage.setAdapter(messageAdapter);
}

}

и это User java class:

  public class User {
String uid,name,email;

public User(){}

public String getUid() {
    return uid;
}

public void setUid(String uid) {
    this.uid = uid;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}
public String toString() {
    return "uid ("+uid + '\''+
            ",name= "+name + '\''+
            ",email= "+email+ '\''+")";
}}

это сообщение java класс:

   public class Message {
   String message , name ,key;

   public Message(){}

   public Message(String message, String name, String key)
    {
    this.message=message;
    this.name=name;
    this.key=key;
   }

   public String getMessage() {
    return message;
   }

   public void setMessage(String message) {
    this.message = message;
   }

   public String getName() {
    return name;
   }

   public void setName(String name) {
    this.name = name;
   }

   public String getKey() {
    return key;
       }

     public void setKey(String key) {
    this.key = key;
   }

  @NonNull
  @Override
   public String toString() {
    return "Message ("+message + '\''+
            ",name= "+name + '\''+
            ",key= "+key+ '\''+")";
     }

   }

это все методы java класс:

   public class AllMethods {
  public  static String name ="";
  }

и манифест xml файл:

  <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.examble.chatapp">

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

1 Ответ

0 голосов
/ 14 июля 2020
@Override
public void onClick(View v) {

}

пусто, вы не говорите ImageButton что-либо делать после нажатия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...