مشکل درshareکردن اطلاعات
سلام بچه ها.خسته نباشین.یه مشکل تو پروژم دارم که اگه لطف کنید کمک کنید ممنون میشم.یه فرم دارم که دو تا دکمه داره.میخوام با کلیک روی دکمه اول اطلاعاتشو از یه textview درون فرم دیگه بگیره.برای دکمه دوم هم به همین صورت اطلاعاتشو از یه textview فرم دیگری بگیره.کدی که واسه اکتیویتی که شامل باتن ها هست به صورت زیر است اما نمیدونم مشکلش کجاست که همزمان با هم انخاب نمیشن.مثلا یکی از دکمه ها اطلاعات رو میگیره دومی خالی میشه. یا با انتخاب دومی اطلاعات دکمه اول پاک میشه.
اگه بلدین ممنون میشم از راهنماییتون
;() Bundle extras = getIntent().getExtras
(); Bundle extrass = getIntent().getExtras
} ( if (extras != null
; ( " final String userInput = extras.getString("user_input
; ( " final String userInputt = extrass.getString("user_inputt
; ( button2.setText(userInput
; ( button3.setText(userInputt
{
} ( if (extrass != null
; ( " final String userInput = extras.getString("user_input
; ( " final String userInputt = extrass.getString("user_inputt
; ( button2.setText(userInput
; ( button3.setText(userInputt
برای اینکار شما در درجه اول می توانید از کنترلرهای مربوط به انتخاب (Selector Spinner) هم استفاده کنید. ضمن اینکه در کاربرد مورد نظر شما بهتر است یک دیالوگ باز شود تا یک صفحه جدید. اما در پاسخ به سوال شما:
دو روش به ذهن من می رسه که می توانید از آن ها استفاده کنید:
روش اول: در کلاس G (اگر متغییرهایی که مربوط به این دو کلید هستند در کل برنامه کاربرد دارند) و یا در اکتیویتی ActivityFirst (اگر نیاز به اشتراک اطلاعات در همه ی برنامه نیست) می توانید دو متغیر استاتیک تعریف کنید:
public static Strig textFirst
public static Strig textTwo
و بعد کافی است در اکتیوتی های مربوط به آن دو مقدار را از EditText بخوانید و به متغیر دلخواهتان به صرت زیر اضافه کنید:
ActivityFirst.textFirst = EditText.getText().ToString;
و اگر در کلاس G تعریف کرده باشید:
G.textFirst = EditText.getText().ToString;
روش دوم: اطلاعات را در اکتیویتی مربوط به ادیت تکست به صورت زیر در کلیدی قرار دهید: (باید توجه کنید که در انتقال به اکتیویتی بعدی Intent intent استفاده شده است)
intent.putExtra("keyName",EditText.getText().ToString);
حالا به همون روشی که گفتید و در بالا آورده اید در اکتیویتی first اطلاعات را به کلیدها منتقل کنید.
هنگامی که از یک اکتیویتی به دیگری می روید اکتیویتی قبلی را نبندید. (بستن و باز کزدن اکتیویتی منابع سیستمی شما را مشغول می کنه) در هر حال اگر مجبور به این کار هستید در روال OnCreate مربوط به اکتیویتی برای تکست کلیدهای خود مقدار دهی کنید: (از روش اول استفاده کنید)
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
if (!textFirst==null){
button2.setText(textFirst);
}
if (!texttwo==null){
button3.setText(texttwo);
}
}
توجه کنید که برای جلوگیری از کرش برنامه و اینکه در بار اولی که برنامه شما اجرا می شود این کلیدها مقادیر پیش فرضشون را داشته باشند شروط فوق قرار داده شده است.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .