Можете ли вы мне помочь, я учусь! ;-)Как изменить текст в списке, используя адаптер
У меня есть две кнопки «+» и «-», и я хочу, чтобы они увеличивали или уменьшали количество на один или на один. Как я могу убедиться, что это повлияет только на правильное текстовое изображение с помощью адаптера.
Теперь все кнопки влияют только на первый. Я знаю, что мне нужно получить позицию/id массива. Но я не знаю, как это сделать.
КСТАТИ
Мерк = Марка
Aantal = Сумма
public class ListViewDemo2 extends Activity {
private ArrayList<String> data = new ArrayList<String>();
int aantal = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list_view_demo2);
ListView lv = (ListView) findViewById(R.id.bestel_lijst);
lv.setAdapter(new MyListAdapter(this, R.layout.list_item, data));
generateListContent();
}
private void generateListContent(){
for (int i =0; i < 55; i++){
data.add("this is row number: " + i);
}
}
@Override
public boolean onCreateOptionsMenu (Menu menu){
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings){
return true;
}
return super.onOptionsItemSelected(item);
}
private class MyListAdapter extends ArrayAdapter<String>{
private int layout;
public MyListAdapter(Context context, int resource, List<String> objects) {
super(context, resource, objects);
layout = resource;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder mainViewholder = null;
if(convertView == null){
LayoutInflater inflater = LayoutInflater.from(getContext());
convertView = inflater.inflate(layout, parent, false);
ViewHolder viewHolder = new ViewHolder();
viewHolder.Merk = (TextView) convertView.findViewById(R.id.Merk);
viewHolder.Aantal = (TextView) convertView.findViewById(R.id.Aantal);
viewHolder.btnup = (Button) convertView.findViewById(R.id.Bup);
viewHolder.btndown = (Button) convertView.findViewById(R.id.Bdown);
viewHolder.btndown.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v){
aantal = aantal-1;
displayAantal(aantal);
}
});
viewHolder.btnup.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v){
aantal = aantal+1;
displayAantal(aantal);
}
});
convertView.setTag(viewHolder);
}
else {
mainViewholder = (ViewHolder)convertView.getTag();
mainViewholder.Merk.setText(getItem(position));
}
return convertView;
}
}
public class ViewHolder {
TextView Merk;
TextView Aantal;
Button btnup;
Button btndown;
}
public void displayAantal(int aantal) {
TextView aantalView = (TextView) findViewById(R.id.Aantal);
aantalView.setText(String.valueOf(aantal));
}
}
Thanx ребята. Но я все еще застрял.
Когда я изменяю вышеуказанные настройки. ViewHolder.btndown и btnup получают ошибки.
И еще не обработал notifyDataSetChanged. Я посмотрел на него, и я понимаю, что он делает. Но я не понимаю, как его реализовать. Я знаю, что мне нужно добавить адаптер перед точкой notifyDataSetChanged(), но не имеет понятия, какой из них или как это работает.
Назад к книгам Я думаю. Или вы, ребята, объясните немного больше. –
Ничего, ребята. Мне удалось разобраться в этом самостоятельно! –