0

Android を使い始めたばかりで、オンラインで検索しても問題の解決策が見つかりません。

キーがコースの名前で、値が締め切りまでの日数であるハッシュマップがあります。このハッシュマップから、1/2 日未満の場合はアイテムの背景色が赤、それ以外の場合は緑のリストを作成したいと考えています。

アレイ アダプターの使用を開始しましたが、解決策が見つかりません。

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
    R.layout.list_costum_text, R.id.list_content, values);

    setListAdapter(adapter);

現時点では、「値」はコースの名前を持つ単なる配列です。現在、Costum アダプターを検討していますが、まだいくつか問題があります。

編集:

vogella のチュートリアルに従えば、この作業を行うことができます (メイン アクティビティを変更しています)。

import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;

public class MainActivity extends ListActivity {
  public void onCreate(Bundle icicle) {
  super.onCreate(icicle);

   String[] values = new String[] { "Android", "iPhone", "WindowsMobile",
    "Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X",
    "Linux", "OS/2" };

   ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
    R.layout.list_costum_text, R.id.red_list, values);

setListAdapter(adapter);




setContentView(R.layout.activity_main);
 }
 }

ここで、activity_main.xml は ListView レイアウトで、list_costum_text には 2 つの編集テキスト (1 つは red_list) が含まれています。

メイン アクティビティでテストできないため、カスタム アダプターがどのように機能するのか理解できません。

4

1 に答える 1

0

ArrayAdapter を拡張してカスタム アダプタを作成し、独自の getView() メソッドを記述する必要があります。

コメントでのリクエスト後の追加情報

どのアダプターも大まかに行うことは、各アイテムの xml レイアウトを取得し、インフレートしてから UI 要素に値を設定することです。

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    LayoutInflater inflater = (LayoutInflater) context
    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View rowView = inflater.inflate(R.layout.rowlayout, parent, false);
    TextView textView = (TextView) rowView.findViewById(R.id.label);
    ImageView imageView = (ImageView) rowView.findViewById(R.id.icon);
    textView.setText(values[position]);
    // Change the icon for Windows and iPhone
    String s = values[position];
    if (s.startsWith("iPhone")) {
      imageView.setImageResource(R.drawable.no);
    } else {
      imageView.setImageResource(R.drawable.ok);
    }
return rowView;

}

これはhttp://www.vogella.com/articles/AndroidListView/article.htmlから取った単なる例ですが、アイデアは得られます。難しいことではありません。

于 2013-02-09T14:56:28.290 に答える