Как установить значения чата для просмотра изображений и текста? - PullRequest
0 голосов
/ 21 сентября 2018

Я делаю приложение для чата на платформе Android.Я должен установить 2 типа значений.Первая обычная строка для просмотра текста и просмотра изображения в этом формате строки.Я беру все значения из моей базы данных Firebase.Но я - стек для установки значений этих типов в моем пользовательском списке.Мои пользователи могут ввести максимум 4 фотографии или нет.И это начало моего чата для начала разговора.После этого разговор будет продолжен, и я должен установить значения в соответствии с отправителем и получателем.Как правильно установить мои значения для просмотра изображений и текста?

Вы можете увидеть мою базу данных, как видно: enter image description here

Вот мой пользовательский макет:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"

    >



<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/gelen_textview"
    android:background="#EAFB00"
    />

    <ImageView
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:src="@drawable/profil_foto"
        android:id="@+id/gelen_imageview"
        />


    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/giden_textview"
        />

    <ImageView
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:layout_gravity="right"
        android:src="@drawable/profil_foto"
        android:id="@+id/giden_imageview"
        />

</LinearLayout>

Вот мой код действия:

       String[] separated = firebaseUser.getEmail().toString().split("@");
            final String firebase_usernames_string = separated[0] ;
            mesajlasma_custom_listvew = new mesajlasma_custom_listvew();

            databaseReference = firebaseDatabase.getReference(sıfat_string + "/" + firebase_usernames_string + "/" + "messages/" + key +"/" +"baslangıc/");

            databaseReference.addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
               for (DataSnapshot chil : dataSnapshot.getChildren()){

                   Log.i(TAG, "onDataChange: " + chil.getValue().toString());
                   String value = chil.getValue(String.class);
                   beginning_of_the_conversation_array.add(value);

               }
                    mesajlaşma_listview.setAdapter(mesajlasma_custom_listvew);

                }

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

                }
            });



        }

       class mesajlasma_custom_listvew extends BaseAdapter {


           @Override
           public int getCount() {
               return beginning_of_the_conversation_array.size();
           }

           @Override
           public Object getItem(int i) {
               return beginning_of_the_conversation_array.get(i);
           }

           @Override
           public long getItemId(int i) {
               return 0;
           }

           @Override
           public View getView(int i, View view, ViewGroup viewGroup) {
               view = getLayoutInflater().inflate(R.layout.mesajlasma_custom_listvew, null);
               TextView gelen_textview = (TextView)view.findViewById(R.id.gelen_textview);
               ImageView gelen_imageview = (ImageView)view.findViewById(R.id.gelen_imageview);
               TextView giden_textview = (TextView)view.findViewById(R.id.giden_textview);
               ImageView giden_imageview = (ImageView)view.findViewById(R.id.giden_imageview);

               return view;
           }
       }

   public Bitmap StringToBitMap(String encodedString){
        try{
            byte [] encodeByte= Base64.decode(encodedString,Base64.DEFAULT);
            Bitmap bitmap= BitmapFactory.decodeByteArray(encodeByte, 0, encodeByte.length);
            return bitmap;
        }catch(Exception e){
            e.getMessage();
            return null;
        }
    }
...