나를 도울 수 있습니까, 배우고 있습니까! ;-)어댑터를 사용하여 목록보기 내에서 텍스트를 변경하는 방법
나는 "+"와 "-"두 개의 버튼을 가지고 있는데, 하나씩 늘리거나 줄이기를 원합니다. 어댑터를 사용하여 올바른 텍스트 뷰에만 효과가 있는지 어떻게 확인합니까?
이제 모든 버튼은 첫 번째 버튼에만 적용됩니다. 배열의 위치/ID를 얻어야한다는 것을 알고 있습니다. 하지만 어떻게해야할지 모르겠다.
은 BTW
머크는 브랜드에게
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));
}
}
고맙습니다들. 그러나 나는 아직도 붙어있다.
위의 설정을 변경할 때. viewHolder.btndown 및 btnup에서 오류가 발생합니다.
그리고 아직 notifyDataSetChanged를 처리하지 않았습니다. 나는 그것을 보았다. 그리고 나는 그것이하는 것을 이해한다. 하지만 그것을 구현하는 방법을 이해하지 않습니다. notifyDataSetChanged()의 점 앞에 어댑터를 추가해야한다는 것을 알고 있지만 그 중 어떤 것이 작동하는지 아무런 단서가 없습니다.
책으로 돌아 가기. 아니면 좀 더 설명 할 수 있을까요? –
절대 얘들 아. 나는 그럭저럭 그것을 독립해서 계산할 수 있었다! –