我正在向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;
}
}