-1

私のアプリケーションでは、このようなメッセージを表示するために行きました

リストビューでメッセージを表示する方法と、リストビューを表示する方法を教えてください。1つは左で、もう1つは右です

メッセージの下部に時間を表示する方法

私のコードを見てください

    //view display 
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    AllmessagedispalyContants message = (AllmessagedispalyContants) this.getItem(position);
    ViewHolder holder;
    if(convertView == null)
    {
        holder = new ViewHolder();
        convertView = LayoutInflater.from(mContext).inflate(R.layout.allmessagesms, null);



        holder.message = (TextView) convertView.findViewById(R.id.message_text);
        holder.date=(TextView)convertView.findViewById(R.id.date);

        convertView.setTag(holder);
    }
    else
        holder = (ViewHolder) convertView.getTag();

    holder.message.setText(message.getMessage());
    holder.date.setText(message.getDate());


    LayoutParams lp = (LayoutParams) holder.message.getLayoutParams();
    lp = (LayoutParams)holder.date.getLayoutParams();

    //check if it is a status message then remove background, and change text color.
    if(message.isStatusMessage())
    {
        holder.message.setBackgroundDrawable(null);
        lp.gravity = Gravity.LEFT;
        holder.message.setTextColor(R.color.textFieldColor);
    }
    else
    {   
        //Check whether message is mine to show green background and align to right

        if(message.messageType.equals(bool))
        {

            holder.message.setBackgroundResource(R.drawable.right);
            lp.gravity = Gravity.RIGHT;

        }
        //If not mine then it is from sender to show orange background and align to left
        else
        {

            holder.message.setBackgroundResource(R.drawable.lift);
            lp.gravity = Gravity.LEFT;

        }
        holder.message.setLayoutParams(lp);
        holder.message.setTextSize(14);
        Typeface typface=Typeface.createFromAsset(mContext.getAssets(),"fonts/Roboto-Bold.ttf");
        holder.message.setTypeface(typface);

        //holder.message.setTextColor(R.color.textColor);   
    }
    return convertView;
}
private static class ViewHolder
{
    TextView message;
    TextView date;



}

ここに画像の説明を入力

4

2 に答える 2

0

リストビューにカスタムアダプターを使用し、リストビュー行に2つのテキストビューと2つの画像(送信者用と受信者用)のレイアウトを作成します。
データベースを使用すると、送信者側と受信者側からのメッセージとステータスを保存できます。それに応じて、どの ImageView とどの EditText を表示するか、どちらを非表示にするかを決定できます

基本的にこれが必要です:

1) 2 ImageView (受信者用に 1 つ、送信者用に 1 つ)
2) 2 EditText または TextView 受信者用に 1 つ、送信者用に
3) メッセージ エントリを保存し、リストビューを介して UI に表示するためのデータベース

レイアウトは次のとおりです。

<?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"
     >

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

        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="Your Speech"
            android:textColor="@android:color/black"
            android:background="@android:color/holo_green_light" 
            >

        </TextView>

        <TextView
           android:layout_width="match_parent"
           android:layout_height="match_parent"
            android:text="sender's Speech"
            android:gravity="right"
            android:textColor="@android:color/black"
            android:background="@android:color/holo_blue_light" 
            >

        </TextView>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dip"
        android:layout_weight="5"
        android:orientation="horizontal"
        android:weightSum="10" >

        <ImageView
            android:background="@drawable/ic_launcher" 
            android:layout_height="50dip"
            android:layout_width="0dip"
            android:layout_weight="2"
            />
        <TextView
            android:layout_height="0dip"
            android:layout_width="0dip"
            android:layout_weight="6"
            />
        <ImageView
            android:background="@drawable/ic_launcher" 
            android:layout_height="50dip"
            android:layout_width="0dip"
            android:layout_weight="2"

            />
    </LinearLayout>

</LinearLayout>

受信者の音声 textview の可視性を「非表示」に設定し、imageview を「非表示」に設定すると、次のレイアウトが得られます。

ここに画像の説明を入力

そして、音声テキストビューの可視性を「非表示」に設定し、画像ビューを「非表示」に設定すると、次のレイアウトが得られます。

ここに画像の説明を入力

このレイアウトをリストビューの行に設定します。これが役立つことを願っています。

于 2013-07-10T04:09:20.823 に答える