Spinner внутри динамического списка

Я пытаюсь создать список с пользовательскими строками, каждая строка содержит счетчик. Я заполняю строку данными следующим образом:

ArrayList<HashMap> list = new ArrayList<HashMap>();
HashMap row = new HashMap();

row.put("Land_Links", c.getString(1));
row.put("Land_Rechts", c.getString(2));
row.put("Datum", c.getString(11));
row.put("Tijd", c.getString(10));

list.add(row);

И после того, как я добавлю его в простой адаптер, а затем в listview.setAdapter. Это все работает идеально. Я не могу понять, как заполнить и установить onclicklistener для счетчиков.

Можете ли вы сказать мне, как я должен решить эту проблему?

редактировать:

С каждой строкой, которую я создаю, создаются 2 новых счетчика, я хочу заполнить и установить прослушиватель onclick для обоих новых счетчиков. Я создал массив со значениями, которые нужно заполнить счетчиками. (R.array.score)

Когда я пытаюсь заполнить счетчики, добавляя их к моему примеру выше, я получаю, что счетчик исключений не является представлением, которое может быть ограничено этим простым адаптером.

Моя цель: чтобы получить один цикл, в котором заполняются текстовые представления, заполняются счетчики, а для счетчиков устанавливаются onclicklisteners.


person DutchGuy    schedule 22.04.2012    source источник
comment
что вам нужно? как работает onClickListener или что-то еще? дайте конкретику..   -  person Sandip Armal Patil    schedule 22.04.2012


Ответы (1)


Вы должны расширить адаптер (BaseAdapter, SimpleAdapter...) и в методе getView (имя не всегда такое, но обычно для всех типов адаптеров, таких как baseAdapter) вы можете установить onClickListener для счетчиков.

Здесь вы можете найти информацию об ArrayAdapter http://www.softwarepassion.com/android-series-custom-listview-items-and-adapters/

Здесь код BaseAdapter

открытый класс FrontPageAdapter расширяет BaseAdapter {

private ArrayList<Item> rssItems;
private static LayoutInflater inflater = null;

public FrontPageAdapter(Activity activity, ArrayList<Item> items){
    super();
    rssItems = items;
    inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}

public int getCount(){
    return rssItems.size();
}

public Object getItem(int position){
    return rssItems.get(position);
}

public long getItemId(int position){
    return getItem(position).hashCode();
}

public View getView(int position, View convertView, ViewGroup parent){
    if (convertView == null)
        convertView =  inflater.inflate(R.layout.frontpage_item, null);

    // Get the item
    Item ls = (Item)getItem(position);
    if (ls == null)
        return convertView;

    //Set the title
    String title = ls.getTitle();
    if (title == null || title.equals("")){
        ((TextView)convertView.findViewById(R.id.FrontPageItemHeader)).setText("");
    }
    else{
        ((TextView)convertView.findViewById(R.id.FrontPageItemHeader)).setText(title);  
    }



    //Obtenemos el contenido. En caso de ser null obtenemos la descripcion
    //  String description = ls.getContent();
    String subtitle= ls.getDescription();
    if (subtitle == null || subtitle.length() == 0){
        ((TextView)convertView.findViewById(R.id.FrontPageItemText)).setVisibility(View.GONE);
    }
    else{
        ((TextView)convertView.findViewById(R.id.FrontPageItemText)).setText(Html.fromHtml(subtitle));
    }

     // Other views, for example your spinner




    return convertView;
}

}

person Aracem    schedule 22.04.2012