آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

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

kazemian  7 سال پیش  7 سال پیش
0 0

سلام به همه ی دوستان
من میخوام کدی رو بنویسم که چند تا 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;
		}

	}

}

 

 

 

+3 0
سلام دوست عزیز متغیر String one و String two در زیر متغیر TextView txt که تعریف کردین این دو رو هم همونجا تعریف کنین تا در کل کلاس بهش دسترسی داشته باشین (7 سال پیش)
+1 0
الان متوجه شدم واقعا ممنونم (7 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
احمد  7 سال پیش
+3 0

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

  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; } } }
+1 0
کد اصلاح شد (7 سال پیش)
0 0
ممنونم آقا احمد (7 سال پیش)
0 0
الان کد به درستی کار کرد ممنونم اما یه چیزی رو نمیتونم درکش کنم: ما وقتی string ها رو قبل از متد on create تعریف میکنیم هنوز مقدار دهی نشدن و توی switch که ازشون استفاده میکنیم پس هنوز نباید مقداری داشته باشن دیگه!!! (7 سال پیش)
+2 0
اول اینکه شما فقط تعریفش رو خارج از متد oncreate انجام دادین و مقدار دهی رو دارین داخل این متد انجام میدین دوم اینکه ببنید از نظر life cycle حالا من کاری ندارم به این که چند تا از متد ها مثل onstart و ... قبل از oncreate اجرا میشن ولی در این برنامه ای که شما نوشتین اولین متدی که اجرا میشه oncreate هست و دستورات داخلش پس دو تا متغیر String one, two; مقدار دهی میشن و تمام و دستور switch کی اجرا میشه موقعی که شما روی دکمه کلیک کنین پس چون متد oncreate و دستورات داخلش قبل اینکه شما روی دکمه ای کلیک کنین اجرا میشه پس داخل switch داخلشون پر هست (7 سال پیش)
0 0
دمت گرم آقا حسین قشنگ دوهزاریم افتاد (7 سال پیش)

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