如何将聊天值设置为图像视图和文本视图?

时间:2018-09-20 21:30:05

标签: android listview firebase-realtime-database textview imageview

我正在向Android平台制作聊天应用程序。我必须设置2种类型的值。第一个普通字符串以文本视图和图像视图的字符串格式显示。我从Firebase数据库中获取所有值。但是我是在我的自定义列表视图上设置这些类型值的堆栈。我的用户最多可以输入4张照片。这是我开始聊天的聊天应用程序的开始。之后,对话将继续,我必须根据发送者和接收者设置值。如何将我的值正确设置为图像视图和文本视图?

您可以看到我的Firebase的显示方式: 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;
        }
    }

0 个答案:

没有答案