PDA

View Full Version : مقدار دهی به xml دیالوگ



reza_azizi2010
چهارشنبه 13 آذر 1392, 23:51 عصر
سلام
من یک دیالوگ دارم که یه فایل xml براش تعیین کردم، توی xml چندتا کنترل هست، من کجا و چطوری میتونم اونارو مقدار دهی کنم ؟ چون هرجا مثلا میخام متن یک textview رو تغییر بدم ارور
java.lang.NullPointerException میده

rubiks.kde
پنج شنبه 14 آذر 1392, 00:23 صبح
بعد از اینکه دیالوگ رو setContentView دادید(یعنی همون xml رو براش مشخص کردید ) بعد به این صورت عمل کنید.


Dialog d = new Dialog(this);
d.setContentView(R.layout.myxml);

TextView text = d.findViewById()

یعنی findViewById رو برای دیالوگ بکار ببرید(پرنت دیالوگ باشه)

reza_azizi2010
پنج شنبه 14 آذر 1392, 23:58 عصر
نشد
بازم پیغام خالی بودن متغییر میده
TextView dialog_title = (TextView) recive_data_dialog.findViewById(R.id.txt_title);

rubiks.kde
جمعه 15 آذر 1392, 02:05 صبح
کد مربوط به همین قسمت دایالوگ رو به همراه xml در اینجا قرار بدید

reza_azizi2010
جمعه 15 آذر 1392, 10:50 صبح
دیالوگ
recive_data_dialog = new Dialog(Activity_list.this);
recive_data_dialog.getWindow().requestFeature(Wind ow.FEATURE_NO_TITLE);
recive_data_dialog.setContentView(R.layout.dialogx ml);
TextView dialog_title = (TextView) recive_data_dialog.findViewById(R.id.txt_title);
dialog_title.setText(Farsi.Convert(G.context.getRe sources().getString(R.string.please_waite)));
recive_data_dialog.show();

xml :

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_margin="3dip">

<ProgressBar
android:id="@+id/progressBar1"
style="?android:attr/progressBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_marginRight="3dip"/>



<TextView
android:id="@+id/txt_dialog_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall" android:textSize="13dip"/>

</LinearLayout>

rubiks.kde
جمعه 15 آذر 1392, 19:07 عصر
شما توی این خط :
TextView dialog_title = (TextView) recive_data_dialog.findViewById(R.id.txt_title);
دارید دنبال .txt_title میگردید در حالی که توی xml این آیتم رو ندارید.

شما باید از txt_dialog_title بجای txt_title استفاده کنی.

طبق چیزی که معلومه داری یه پروگرس دیالوگ برای منتظر بودن می سازی ، پیشنهاد میکنم از ProgressDialog (اماده در API اندورید) استفاده کنید.

ProgressDialog pd = new ProgressDialog(yourActivity.this);
pd.setMessage("loading");
pd.show();

reza_azizi2010
جمعه 15 آذر 1392, 20:35 عصر
مرسی
راستش چون بیشتر میشه شخصی سازی کرد، از دیالوگ معمولی استفاده میکنم