0

オンライン チャット アプリを作成しています。リスト ビューを使用して、その時点でオンラインになっている連絡先を表示しています。私の問題は、連絡先の名前と緑色のステータス アイコンなど (Facebook やその他のチャット アプリケーションなど) を 1 行に表示したいことです。

リストビューの右端に連絡先名と緑色を表示する方法がわかりません。誰かが問題を解決するのを手伝ってくれますか?

4

7 に答える 7

0

カスタム アダプターには、次のレイアウトを使用できます。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TextView
        android:id="@+id/statusTextView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:drawableRight="@drawable/status" />

 </LinearLayout>

画像を動的に変更するには、カスタム アダプターから getView(...) 内で setCompoundDrawablesWithIntrinsicBounds (int left, int top, int right, int bottom)を使用できます。
元:

public View getView(int position, View convertView, ViewGroup parent) {
    convertView = context.getLayoutInflater().inflate(R.layout.item_element, null);
    TextView statusTV = (TextView) convertView.findViewById(R.id.status);
    statusTV.setText("...");
    Drawable compoundDrawable = context.getResources().getDrawable(R.drawable.status);
    statusTV.setCompoundDrawables(compoundDrawable, null, null, null);
    return convertView;
}

また、listView の最適化にはviewHolder パターンを使用します。

于 2013-09-24T06:51:36.377 に答える
0

リストビュー用のカスタム アダプターを作成し、このリストビューに設定する必要があります。

このチュートリアル

それを行う方法を示します。

幸運を

于 2013-09-24T06:14:21.597 に答える
0

そのためには、ListView以下のようにアイテムのカスタム レイアウトを作成する必要があります。

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
    >

<TextView
        android:text="Contact name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
    />
<ImageView
        android:layout_width="10dip"
        android:layout_height="match_parent"
        android:background="green_circle_image"
        android:layout_alignParentRight="true"

    />

</RelativeLayout>
于 2013-09-24T06:14:56.350 に答える
0

これは、コードを提供するのではなく、 内にカスタム アイテムが必要な非常に単純なケースです。レイアウト インフレーションlistviewの概念を理解することをお勧めします。ここでは、設計したレイアウトでほとんどすべてのコンテナ レイアウトをインフレーションできます。

textviewグーグルで検索すると、あなたのケースで多くの例が見つかりますimageview

于 2013-09-24T06:12:34.577 に答える