PDA

View Full Version : مشکل در چرخش اکتیویتی



rubiks.kde
جمعه 21 تیر 1392, 21:41 عصر
سلام دوستان

من توی یه اکتیویتی نزدیک به 100 تا textview دارم که تمام این ها رو در تابع oncreate می سازم و مقدار دهی میکنم ولی با چرخوندن گوشی همشون ریلود میشن و نمیخوام چنین اتفاقی بی افته .

به نظرتون چیکار کنم.
من هم روش منیفست و هم از داخل کد رو امتحان کردم.

darkenerboy
جمعه 21 تیر 1392, 22:15 عصر
textView یا editText ؟
دقیقا کدوم یکی از اتفاقات زیر میوفته ؟
گوشی رو که میچرخونی صفحه نمیچرخه ولی اطلاعات ریست میشه !
گوشی رو که میچرخونی صفحه میچرخه و اطلاعات ریست میشه !

abbasalim
جمعه 21 تیر 1392, 23:43 عصر
در جواب darkenerboy (http://barnamenevis.org/member.php?157652-darkenerboy)
http://barnamenevis.org/images/statusicon/user-offline.png :
من جواب رو نمیدونم ولی وقتی گوشی چرخیده میشه صفحه دوباره لود میشه

rubiks.kde
جمعه 21 تیر 1392, 23:54 عصر
textView یا editText ؟
دقیقا کدوم یکی از اتفاقات زیر میوفته ؟
گوشی رو که میچرخونی صفحه نمیچرخه ولی اطلاعات ریست میشه !
گوشی رو که میچرخونی صفحه میچرخه و اطلاعات ریست میشه !

گوشی رو میچرخونم صفحه چرخیده میشه و تمام داده ها ریلود میشن.
تمام شی هام هم textview هستن ، در واقع من 100 تا textview دارم که مقادیر رو از اینترنت میگیرم و نمایش میدم که باچرخش دوباره وصل میشه و اطلاعات رو میگیره.

hamyd_reza
شنبه 22 تیر 1392, 00:26 صبح
----------

shahin bahari
شنبه 22 تیر 1392, 20:11 عصر
شما با چه کدی سعی کردید مقادیر رو نگه دارید؟ تا اونجا که من میدونم شما باید موقع خروج از اکتیویتی همه مقادیر رو توی saved Instance State ذخیره کنید و موقع لود کردن دوباره اون مقدار ها رو نسبت بدید. شما متد OnSaveInstanceState رو override کنید و توی اون مقادیر رو ذخیره کنید و توی متد onCreate یا onResume متد restoreMe رو صدا کنید.


@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putString("text1", textStatus.getText().toString());
outState.putString("text2", textIntValue.getText().toString());
outState.putString("text3", textStrValue.getText().toString());
}
private void restoreMe(Bundle state) {
if (state!=null) {
textStatus.setText(state.getString("text1"));
textIntValue.setText(state.getString("text2"));
textStrValue.setText(state.getString("text3"));
}
}