0

Android で 3 行のリストビューを作成しました。行に異なるフォント/色を設定したい場合、どうすればこれを実現できますか? これまで、私は成功せずにさまざまなことを試してきました。これは私の最新の試みです。getComment() を斜体に設定しようとしていますが、正直なところ、自分が何をしているのかわかりません :D. 助けてください!

public String toString()
{
return this.getAlias() + " " + this.dateFormat.format(this.getDate()) + "\n" +         (Html.fromHtml("<i>" + this.getComment() + "</i>" + "<br />"));  
}
4

3 に答える 3

1

これは、ListViewAdapter から実行できます。私のプロジェクトでは、ArrayAdapter を拡張する新しいクラスを作成しました。

class SummaryListAdapter extends ArrayAdapter<DynformSummary> {
    static final int mViewResourceId = R.layout.dynformlist_item;
    final Context mContext;

    public SummaryListAdapter(Context context, DynformSummaryList items) {
        super(context, mViewResourceId, items);
        mContext = context;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View view = convertView;
        if (view == null) {
            LayoutInflater inflater = LayoutInflater.from(mContext);
            view = inflater.inflate(mViewResourceId, parent, false);
        }

        DynformSummary summary = getItem(position);
        if (summary != null) {
            TextView nameView = (TextView) view
                    .findViewById(R.id.dynformSummary_name);
            TextView createdOnView = (TextView) view
                    .findViewById(R.id.dynformSummary_createdOn);
            TextView itemSummaryView = (TextView) view
                    .findViewById(R.id.dynformSummary_itemSummary);
            java.text.DateFormat df = DateFormat.getDateFormat(mContext);

            String itemSummary = summary.getItemSummary();
            if (itemSummary == null || itemSummary.length() == 0) {
                itemSummary = mContext
                        .getString(R.string.placeholder_empty);
            }

            nameView.setText(summary.getName());
            createdOnView.setText(df.format(summary.getCreatedOn()));
            itemSummaryView.setText(itemSummary);
        }

        return view;
    }
}

あなたの場合、異なるフォントまたは色ごとに個別のレイアウト xml を作成するか、実行時に getView メソッドでフォント/色を編集できます。

于 2012-06-14T09:07:17.613 に答える
0

xml レイアウト ファイルで行を定義したと仮定します。いくつかの単純なパラメーターを使用して、TextView 内のテキストの色/スタイルを変更できます。

<TextView
  ...
  android:textColor="#FFFF0000"
  android:textStyle="italic"
/>
于 2012-06-14T09:04:51.127 に答える
0

あなたがしたいのは、テキストビューを保持するリストビューを持っていることです.テキストビューのテキストを設定すると、CharSequenceを正しく設定していますか? CharSequence を使用すると、スパンを追加して、太字、下線、イタリック、色付けなどを行うことができます。リスト ビューに配置すると、そのスタイルが維持されると確信しています。そうすべきではない理由はありません。文字列を使用するとスタイルがなくなるため、CharSequence を使用することをお勧めします

http://developer.android.com/reference/android/text/Spannable.html

スパンを使用すると、ハードコーディングされた XML を使用せずに外観を動的に変更することもできます

于 2012-06-14T09:05:28.633 に答える