Пример #1
0
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_array_adapter_test);

    // xmlからおつまみ名の配列を取得
    String[] item_name = this.getResources().getStringArray(R.array.tsumami);
    this.list = new ArrayList<Otsumami>(item_name.length);
    for (int i = 0; i < item_name.length; i++) {
      // おつまみクラスに格納
      Otsumami otsumami = new Otsumami();
      otsumami.setItem_name(item_name[i]);

      this.list.add(otsumami);
    }
    this.list_adapter = new ListAdapter(this, this.list);
    // 表示
    ((ListView) findViewById(R.id.listView1)).setAdapter(this.list_adapter);
  }
Пример #2
0
    // positionはfinalにしないと、onClick内で機能しない
    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {

      final Otsumami otsumami = this.getItem(position);
      if (null == convertView) {
        // 行のレイアウトを取得(TextViewをImageButtonのレイアウト)
        convertView = this.mInflater.inflate(R.layout.list_item, null);
      }

      if (null != otsumami) {
        // おつまみ名と個数を表示
        ((TextView) convertView.findViewById(R.id.textView1))
            .setText(otsumami.getItem_name() + " (" + otsumami.getCount() + ")");

        ((ImageButton) convertView.findViewById(R.id.imageButton1))
            .setOnClickListener(
                new View.OnClickListener() {
                  public void onClick(View v) {

                    // リストの中身を変更する
                    Otsumami add_otumami = list.get(position);
                    add_otumami.addCount();
                    list.set(position, add_otumami);

                    // 表示の更新のやり方1:リストビューに通知をかける
                    list_adapter.notifyDataSetChanged();

                    // 表示の更新やり方2:ビューを直接いじる
                    //                        View parent = (View) v.getParent();
                    //
                    // ((TextView)(parent.findViewById(R.id.textView1))).setText(add_otumami.getItem_name() + " (" + add_otumami.getCount() + ")");
                  }
                });
      }
      return convertView;
    }