Ich habe eine listview
innerhalb der benutzerdefinierten Dialog. In dieser Liste habe ich ein Textfeld und ein Edittext
für jede Zeile. Ich benutze editTextWatcher
für die Verarbeitung aller edittext
Werte auf exakte Position. Bis zu diesem funktioniert gut. Ich habe eine Schaltfläche zum Speichern in diesem Dialogfeld unter der listView
. Nach dem Klick auf Speichern möchte ich alle editext
Daten zum Server posten. Aber ich bin in der Lage, nur die Werte von edittext
zu veröffentlichen, die in der Vorderansicht sind.android Kann nicht alle Editext-Werte mit in Listview in benutzerdefinierten Dialog
Dialog Layout:
private void showDialog(){
dialog1 = new Dialog(this);
final Dialog tradDialog = new Dialog(this, android.R.style.Theme_Light_NoTitleBar);
//tradDialog.setContentView(R.layout.trad_dialog_layout);
View view = getLayoutInflater().inflate(R.layout.trad_dialog_layout_individual, null);
//tradDialog.setContentView(R.layout.trad_dialog_layout);
tradDialog.setCanceledOnTouchOutside(false);
// holder.mWatcher = new MutableWatcher();
lv = (ListView) view.findViewById(R.id.productsListView);
RelativeLayout saveBtnLayout = (RelativeLayout) view.findViewById(R.id.saveBtnLayout);
// Change MyActivity.this and myListOfItems to your own values
clad = new CustomListAdapterDialog(SolutionActivity.this, individual_productChoosedAr);
lv.setAdapter(clad);
clad.notifyDataSetChanged();
//save button for posting all edittext values to server
saveBtnLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for (int i = 0; i < lv.getChildCount(); i++) {
v = lv.getChildAt(i);
etPrice = (EditText) v.findViewById(R.id.etPrice);
ProductPrice = etPrice.getText().toString();
if(ProductPrice.equals("")){
ProductPrice = "NULL";
}
productPriceAr.add(ProductPrice);
}
Toast toast = Toast.makeText(getApplicationContext(),"Please wait...",Toast.LENGTH_LONG);
toast.show();
SendIndividualDatatoServer sendIndividualData = new SendIndividualDatatoServer();
sendIndividualData.execute();
}
});
//lv.setOnItemClickListener(........);
dialog1.setContentView(view);
dialog1.show();
}
Individuelle Adatper:
public View getView(final int position, View convertView, ViewGroup parent) {
final int pos = position ;
final ViewHolder holder;
if (convertView == null) {
convertView = layoutInflater.inflate(R.layout.custom_layout_individual, null);
holder = new ViewHolder();
holder.product = (TextView) convertView.findViewById(R.id.tvProductName);
holder.price = (EditText) convertView.findViewById((R.id.etPrice));
holder.mWatcher = new MutableWatcher();
holder.price.addTextChangedListener(holder.mWatcher);
etPrice = (EditText) convertView.findViewById(R.id.etPrice);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.mWatcher.setActive(false);
holder.price.setText(myList.get(position), TextView.BufferType.EDITABLE);
holder.mWatcher.setPosition(position);
holder.mWatcher.setActive(true);
holder.product.setText(listData.get(position).P_Name);
productIds = listData.get(position).Category_Id;
return convertView;
}
TextWatcher Klasse:
@Override
public void afterTextChanged(final Editable s) {
// SolutionActivity.this.runOnUiThread(new Runnable() {
// @Override
// public void run() {
if (mActive) {
myList.put(mPosition, s.toString());
System.out.print(s.toString());
}
ok ich werde Sie versuchen, und erzählen über Ausgabe –