2013-12-21 3 views
0

Я новичок в Android, и я хотел бы спросить что-то, что я искал в нескольких потоках и не смог найти конкретное решение.Android: обновите несколько EditTexts в ListView через кнопки, которые являются частью ListView

Я хотел бы сделать ListView, который выглядит следующим образом:

http://postimg.org/image/9ib8gjq95/

///////////////////////// /////////////////////////////////////

// TextView // EditText // Button + // Button - //

//////////////////////////////////////// ////////////////

Этот списокView является динамическим обновляется новыми строками одного и того же режима (TextView, EditText, Button +, Button-).

Я хочу нажать на +/- кнопки строки и изменить число, существующее в EditText в этой строке.

package com.example.test2; 

import java.util.ArrayList; 

import android.app.Activity; 
import android.content.Context; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ArrayAdapter; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 


public class EditCAdapter extends ArrayAdapter<Prosthesi> { 
int counter=0; 

Context context; 
String onoma; 
int layoutResourceId; 
ArrayList<Prosthesi> data = new ArrayList<Prosthesi>(); 


public EditCAdapter(Context context, int layoutResourceId, 
ArrayList<Prosthesi> data) { 
super(context, layoutResourceId, data); 
this.layoutResourceId = layoutResourceId; 
this.context = context; 
this.data = data; 
} 

@Override 
public View getView(final int position, View convertView, ViewGroup parent) { 
View row3 = convertView; 
UserHolder holder = null; 

if (row3 == null) { 
LayoutInflater inflater = ((Activity) context).getLayoutInflater(); 
row3 = inflater.inflate(layoutResourceId, parent, false); 
holder = new UserHolder(); 
holder.kodikos=(TextView)row3.findViewById(R.id.textD); 
holder.plus = (Button) row3.findViewById(R.id.buttD); 
holder.minus=(Button) row3.findViewById(R.id.buttD2); 
holder.posotita=(EditText)row3.findViewById(R.id.e4); 

row3.setTag(holder); 
} else { 
holder = (UserHolder) row3.getTag(); 
} 
Prosthesi user = data.get(position); 
holder.kodikos.setText(user.getName()); 

holder.plus.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     counter++; 

     //do the stuff I described 

     //tried this but it isn't working! 
     // UserHolder holder=(UserHolder)v.getTag(); 
     // holder.posotita.setText(String.valueOf(counter)); 

    } 
}); 

return row3; 
} 






static class UserHolder { 
TextView kodikos; 
EditText posotita; 
Button plus; 
Button minus; 




} 

} 

Thnx заранее !!!!

+0

эй, у тебя есть ответ? Если да, то, пожалуйста, скажи мне –

ответ

0

Фактически таким образом вы не сможете получить, какой строки edittext вам нужно изменить. поэтому прежде всего установите тег для обеих кнопок, затем инициализируйте счетчик внутри getview и в соответствии с поведением кнопки на setonclicklistner измените значение на edittext. это будет работать точно. попробуйте и скажите, нужна ли вам дополнительная помощь.

Смежные вопросы