Я делаю приложение для чата на платформе Android.Я должен установить 2 типа значений.Первая обычная строка для просмотра текста и просмотра изображения в этом формате строки.Я беру все значения из моей базы данных Firebase.Но я - стек для установки значений этих типов в моем пользовательском списке.Мои пользователи могут ввести максимум 4 фотографии или нет.И это начало моего чата для начала разговора.После этого разговор будет продолжен, и я должен установить значения в соответствии с отправителем и получателем.Как правильно установить мои значения для просмотра изображений и текста?
Вы можете увидеть мою базу данных, как видно:
Вот мой пользовательский макет:
<?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;
}
}