بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

استفاده از متغیر یک متد در متدی دیگر !!!

مدیریت گفتگو
kazemian 10 سال پیش
آخرین تغییر: 10 سال پیش

سلام به همه ی دوستان
من میخوام کدی رو بنویسم که چند تا button داشته باشیم و کاربر روی هر کدوم از button ها که کلیک کرد متن button  توی یک TextView نمایش بده
الان توی switch مقدار String one  رو نمیتونم بریزم توی txt
چطوری باید این کارو انجام بدم؟

 public class Main extends Activity implements View.OnClickListener {

	TextView txt;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		Button num1 = (Button) findViewById(R.id.main_btn_numberone);
		num1.setOnClickListener(this);
		Button num2 = (Button) findViewById(R.id.main_btn_number2);
		num2.setOnClickListener(this);
		 txt = (TextView) findViewById(R.id.main_txt);

		String one = num1.getText().toString();
		String two = num2.getText().toString();

	}

	@Override
	public void onClick(View v) {

		switch (v.getId()) {
		case R.id.main_btn_numberone:
			
			txt.setText(one);
			
			break;
		case R.id.main_btn_number2:

			break;

		default:
			break;
		}

	}

}

 

 

 

نظرات

hossein_hr10 10 سال پیش
سلام دوست عزیز متغیر String one و String two در زیر متغیر TextView txt که تعریف کردین این دو رو هم همونجا تعریف کنین تا در کل کلاس بهش دسترسی داشته باشین
kazemian 10 سال پیش
الان متوجه شدم واقعا ممنونم

پاسخ‌ها 1

احمد 10 سال پیش

مرتب شده کدتون + اصلاحات میشه

  public class Main extends Activity implements View.OnClickListener {

	TextView txt;
	String one, two;
	Button num1, num2;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		num1 = (Button) findViewById(R.id.main_btn_numberone);
		num2 = (Button) findViewById(R.id.main_btn_number2);	
txt = (TextView) findViewById(R.id.main_txt); num1.setOnClickListener(this); num2.setOnClickListener(this); one = num1.getText().toString(); two = num2.getText().toString(); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.main_btn_numberone: txt.setText(one); break; case R.id.main_btn_number2: break; default: break; } } }

نظرات

احمد 10 سال پیش
کد اصلاح شد
kazemian 10 سال پیش
ممنونم آقا احمد
kazemian 10 سال پیش
الان کد به درستی کار کرد ممنونم اما یه چیزی رو نمیتونم درکش کنم: ما وقتی string ها رو قبل از متد on create تعریف میکنیم هنوز مقدار دهی نشدن و توی switch که ازشون استفاده میکنیم پس هنوز نباید مقداری داشته باشن دیگه!!!
hossein_hr10 10 سال پیش
اول اینکه شما فقط تعریفش رو خارج از متد oncreate انجام دادین و مقدار دهی رو دارین داخل این متد انجام میدین دوم اینکه ببنید از نظر life cycle حالا من کاری ندارم به این که چند تا از متد ها مثل onstart و ... قبل از oncreate اجرا میشن ولی در این برنامه ای که شما نوشتین اولین متدی که اجرا میشه oncreate هست و دستورات داخلش پس دو تا متغیر String one, two; مقدار دهی میشن و تمام و دستور switch کی اجرا میشه موقعی که شما روی دکمه کلیک کنین پس چون متد oncreate و دستورات داخلش قبل اینکه شما روی دکمه ای کلیک کنین اجرا میشه پس داخل switch داخلشون پر هست
kazemian 10 سال پیش
دمت گرم آقا حسین قشنگ دوهزاریم افتاد

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .