PDA

View Full Version : اعمال مقدار جدید editview که در listview قرار دارد پس از تغییر کاربر و نمایش مقدار جدید آن



hamide_g
سه شنبه 31 تیر 1393, 12:25 عصر
سلام
من یک listview دارم که هر سطر آن دارای یک edittext است که مقدار اولیه آن با داده های بانک پر میشود حالا میخواهم وقتی کاربر مقدار edittext هر ردیف را که تغییر داد، مقدار جدید در adapter لیستم به روز بشود. الان که تغییرش میدهم، مقدار جدید در edittext هست ولی وقتی مقدار adapter را نمایش میدهم، همان مقداری است که در ابتدا load کردم. از addTextChangedListener هم استفاده کردم ولی چون edittext با مقدار اولیه پر میشود، هربار تکرار میشود تا همه مقادیر edittext را مثل هم بکند!

parvizwpf
سه شنبه 31 تیر 1393, 13:59 عصر
میشه کد بگدارید؟

hamide_g
سه شنبه 31 تیر 1393, 14:17 عصر
میشه کد بگدارید؟

کد زیر مربوط به ساخت adapter لیست است که ردیف هایی که برای لیست در فایل xml معرفی کردم را مشخص می کند.


class ScoreAdapter extends ArrayAdapter<WClass_OneScore>
{
ScoreAdapter()
{
super(Score_Lib.this,android.R.layout.simple_list_ item_1,model);
}

public View getView(int position, View convertView, ViewGroup parent)
{
View row=convertView;
OneScoreHolder holder=null;

if (row==null) {
LayoutInflater inflater=getLayoutInflater();

row=inflater.inflate(R.layout.row_score, parent, false);
holder=new OneScoreHolder(row);
row.setTag(holder);
}
else {
holder=(OneScoreHolder)row.getTag();
}

holder.populateFrom(model.get(position),position);
return(row);
}

}
//================================================== =================
static class OneScoreHolder
{
private WClass_OneScore sc;
public ViewGroup layout_item;
private TextView t_name=null;
private TextView t_code=null;
private TextView t_id=null;

private EditText e_score=null;

private View row=null;

OneScoreHolder(View row)
{
this.row=row;
layout_item = (ViewGroup) row.findViewById(R.id.layout_itemscore);
t_name=(TextView) row.findViewById(R.id.txtnamestuscore);
t_code=(TextView) row.findViewById(R.id.txtcodestuscore);
t_id= (TextView) row.findViewById(R.id.txtidstuscore);
e_score= (EditText) row.findViewById(R.id.txtone_score);

}

void populateFrom(final WClass_OneScore r ,final int position)
{
t_name.setText(r.getStuName() + " " + r.getStuFamily());
t_code.setText(r.getStuCode());
t_id.setText(Long.toString(r.getStuID()));
e_score.setText(Float.toString(r.getScore()));


e_score.addTextChangedListener(new TextWatcher() {
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub

//r.setScore(Float.parseFloat(s.toString()));

}

public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub

}

public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub

}
} );

if (position % 2 == 0) {
layout_item.setBackgroundColor(Color.parseColor("#06ffffff"));
} else {
layout_item.setBackgroundColor(Color.parseColor("#10ffffff"));
}

}