У меня проблема с заполнением пользовательского списка макета при щелчке. У меня нет опыта работы с java и ArrayLists. Мой код в основном построен с использованием учебников в Интернете. Например, я узнаю намного быстрее. Итак, у меня есть класс для настраиваемого элемента и адаптер для него. Они идут так:Android Динамическое заполнение пользовательского списка
public class Prodf {
public int icon;
public String id;
public String nume;
public String um;
public String pu;
public String cant;
public Prodf(){
super();
}
public Prodf(int icon, String id, String nume, String um, String pu, String cant) {
super();
this.icon = icon;
this.id = id;
this.nume = nume;
this.um = um;
this.pu = pu;
this.cant = cant;
}
}
и адаптер:
public class ProdfAdapter extends ArrayAdapter<Prodf> {
Context context;
int layoutResourceId;
Prodf data[] = null;
Context mContext;
public ProdfAdapter(Context context, int layoutResourceId, Prodf[] data) {
super(context, layoutResourceId, data);
this.layoutResourceId = layoutResourceId;
this.mContext = context;
this.context = context;
this.data = data;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
ProdfHolder holder = null;
if(row == null)
{
LayoutInflater inflater = ((Activity)context).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent, false);
holder = new ProdfHolder();
holder.hldIcon = (ImageView)row.findViewById(R.id.fffIcon);
holder.hldId = (TextView)row.findViewById(R.id.fID);
holder.hldNume = (TextView)row.findViewById(R.id.fTitlu);
holder.hldUm = (TextView)row.findViewById(R.id.fUM);
holder.hldPu = (TextView)row.findViewById(R.id.fPU);
holder.hldCant = (TextView)row.findViewById(R.id.fCant);
row.setTag(holder);
}
else
{
holder = (ProdfHolder)row.getTag();
}
Prodf produ = data[position];
holder.hldId.setText(produ.id);
holder.hldNume.setText(produ.nume);
holder.hldUm.setText(produ.um);
holder.hldPu.setText(produ.pu);
holder.hldCant.setText(produ.cant);
return row;
}
static class ProdfHolder
{
ImageView hldIcon;
TextView hldId;
TextView hldNume;
TextView hldUm;
TextView hldPu;
TextView hldCant;
}
}
- Как использовать эти, в событии нажатия кнопки, чтобы добавить полный элемент для пользовательского макета ListView?
Bellow id, где я установил событие кнопки click и установил адаптер для списка. Однако я использую разные типы в адаптере и в функции добавления ... Как их исправить?
...
ArrayList<Prodf> produsele = new ArrayList<Prodf>();
....
Button badd = (Button) findViewById(R.id.btn_addpro);
View.OnClickListener eventHandler2 = new View.OnClickListener() {
@Override
public void onClick(View arg0) {
Prodf produsu = new Prodf(0, "id1", "numepro", "PCS", "3.20", "2");
produsele.add(produsu);
ProdfAdapter adapter = new ProdfAdapter(MyActivity.this,R.layout.prodf_item, produsele);
mylist.setAdapter(adapter);
adapter.notifyDataSetChanged();
Как вы заметили, мой адаптер расширяет ArrayAdapter и ожидает Prodf [], и когда я заселить элементы я использую ArrayList. Я думаю, что это моя проблема, но я не знаю, как сделать их ладят ... значит, я получаю сообщение об ошибке компилятора:
Конструктор ProdfAdapter (MyActivity, INT, ArrayList) является неопределенным
Я знаю, почему, но я не знаю, как это исправить.
Вы должны установить этот адаптер в свой список. –
Я делаю это, позвольте мне показать его вам (я отредактирую вопрос, чтобы показать его). У меня проблема с заполнением Arraylist и использованием адаптера – user1137313