私はlistview
をカスタムダイアログ内に持っています。そのリストでは、私は1つのテキストフィールドと1つの行ごとにEdittext
を持っています。正確な位置のすべてのedittext
値を扱うために私はeditTextWatcher
を使用しています。これまでの罰金まで。私はそのダイアログにlistView
の下に1つの保存ボタンを持っています。保存をクリックした後、すべてのeditext
データをサーバーに送信します。しかし、私はedittext
の値が正面から見えるだけ投稿することができます。androidカスタムダイアログ内のリストビューですべてのeditext値を取得できません
ダイアログレイアウト:
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();
}
カスタム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クラス:何A
@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());
}
私がしようとすると、出力をご紹介します:
、私は次のように使用すべての値を投稿するため
–