0

2 人でチャットするためのアプリケーションを作成しました

  • まず、Jsonparser でサーバーからすべてのデータを取得する必要があります

  • 各行に「shop、painter、datetime、comment、id」が含まれるカスタムリストビューがあります

  • あなたの名前が空でない場合、コメントはあなたのものであり、その逆であることを意味します

  • 画家やショップを示すコメントの背景に吹き出しを入れたい

複数のテキストビューを持つカスタムリストビューがあり、すべての情報を含むリソースデータがサーバーから取得され、ハッシュマップ配列に保存されるため、getview の使用方法がわかりません...ハッシュマップは getview の位置を持っていません方法...

.........いくつかのコード.....

// adding HashList to ArrayList
AllCommentsList.add(map);



adapter = new SimpleAdapter(getApplicationContext(),
                        AllCommentsList, R.layout.list_row_order_comments,
                        new String[] { TAG_COMMENT_ID, TAG_SHOP, TAG_PAINTER,TAG_COMMENT, TAG_DATETIME },
                        new int[] { R.id.tvIdComments, R.id.tvShopSender,R.id.tvPainterSender, R.id.tvComment,R.id.tvDateTimeComments });
                // updating listview
                listViewComment.setAdapter(adapter);

これは私のコードですが、コメントテキストビューの背景を動的に変更したい

このようなコードをどのように配置するのですか????

   if (strPainter.equals("null")) {
    tvComment.setBackgroundResource(R.drawable.bubble_green);
    }
   if (strShop.equals("null")) {
    tvComment.setBackgroundResource(R.drawable.bubble_yellow);
    }
4

1 に答える 1

1

使用しないでくださいSimpleAdaptergetView現在のアイテムに基づいて、レイアウト、背景などに必要な操作をオーバーライドして行うカスタム アダプターを作成します。

簡単な例については、Android SDK フォルダーを参照/samples/android-8/ApiDemos/src/com/example/android/apis/view/List5.javaしてください (必要に応じて適切なサンプルをダウンロードしてください)。

private class MyListAdapter extends BaseAdapter {
...
    public View getView(int position, View convertView, ViewGroup parent) {
        TextView tv;
        if (convertView == null) {
            tv = (TextView) LayoutInflater.from(mContext).inflate(
                    android.R.layout.simple_expandable_list_item_1, parent, false);
        } else {
            tv = (TextView) convertView;
        }
        tv.setText(mStrings[position]);
        return tv;
    }
...
}
于 2013-10-29T23:01:53.810 に答える