PDA

View Full Version : اضافه کردن edittext در alertdialog با زدن دکمه



afi_program
شنبه 06 مرداد 1397, 14:03 عصر
سلام
من یه alertdialog دارم که توش یک سری edittext وجود داره که تعدادشون در حین کار برنامه معلوم میشه.
تا اینجا مشکلی نیست
اما میخوام در setneutralbutton زمانی که روش کلیک شد به اون edittext های قبلی اضافه بشه (مشکل اینجاس).

alertbuilder.setNeutralButton("افزودن",
new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int id)
{
int i=CounterLinearLayout.getChildCount()*3;
EditText lengthedittext=new EditText(Archive_Activity.this);
EditText countedittext=new EditText(Archive_Activity.this);
TextView countertextview=new TextView(Archive_Activity.this);

countertextview.setText(String.valueOf(i/3+1));
countertextview.setId(i+3);
countertextview.setTextSize(20F);
countertextview.setMinWidth(90);
countertextview.setMaxWidth(90);
countertextview.setPadding(20,40,0,0);

lengthedittext.setMinWidth(500);
lengthedittext.setId(i+1);
lengthedittext.setTextAlignment(View.TEXT_ALIGNMEN T_CENTER);
lengthedittext.setInputType(InputType.TYPE_CLASS_N UMBER );
lengthedittext.setSelectAllOnFocus(true);
lengthedittext.setText("");
lengthedittext.setVisibility(View.VISIBLE);
lengthedittext.setNextFocusDownId(i+2);
///

countedittext.setMinWidth(150 );
countedittext.setId(i+2);
countedittext.setTextAlignment(View.TEXT_ALIGNMENT _CENTER);
countedittext.setInputType(InputType.TYPE_CLASS_NU MBER);
countedittext.setSelectAllOnFocus(true);
countedittext.setText("");
countedittext.setVisibility(View.VISIBLE);
countedittext.setNextFocusDownId(i+4);

CounterLinearLayout.addView(countertextview);
LenghtLinearLayout.addView(lengthedittext);
CountLinearLayout.addView(countedittext);
}});

این کدی که دارم.
ولی با زدن دکمه دیالوگ بسته میشه

ممنون از کمکتون

farhad_shiri_ex
یک شنبه 07 مرداد 1397, 03:23 صبح
1- باید به layout اصلی دیالوگ دسترسی داشته باشی مثلا اگر یک RelativeLayout هست باید با id به این کانتینر دسترسی داشته باشید در زمان اجرا.
2- ویا در زمان اجرا یک layout بسازید و به یک layoutManager متصلش کنید.
3- حالا کافی که در layout مورد نظرتون هر چند تا آبجکتی که می خواهید اضافه کنید.
مثل این ....

points[pos] = new CardView(getContext());
spaces[pos] = new Space(getContext());
//points[pos].setTag(pos);
points[pos].setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP _CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
points[pos].setBackgroundResource(pos == pageNumber ? R.drawable.frame_shape_black_alpha_point_active : R.drawable.frame_shape_black_alpha_point);
points[pos].setAnimation(pos == pageNumber ? AnimationUtils.loadAnimation(getContext(), R.anim.zoomin_3) : null);
layoutDots.addView(points[pos]);
spaces[pos].setLayoutParams(new ViewGroup.LayoutParams(10,1));
layoutDots.addView(spaces[pos]);

afi_program
یک شنبه 14 مرداد 1397, 11:18 صبح
ممنون از پاسختون
اما مشکل اصلی اینه که دیالوگ با زدن هرکدام از دکمه هایش بسته میشود.