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

فراخوانی تابع

soheila  10 سال پیش  10 سال پیش
0 0

سلام .... من دوتا تابع ان کلیک دارم ...ک میخوام داخل تابع دوم اولی رو فراخوانی کنم ...میشه راهنمایی کنید؟/

0 0
سلام منظورت رو واضح تر بگو تا بچه ها بتونن کمکتون کنن (10 سال پیش)
0 0
ی باتن دارم ک تابع ان کلیک داره ...و ی باتن دیگ ک اون هم تابع ان کلیک داره ...میخوام وقتی باتن دوم زده میشه ی سری کارها و علاوه بر اون تابع ان کلیک اول انجام بشه ...ولی نتونستم فراخوانی کنم .؟/ (10 سال پیش)
0 0
شما باید هر کاری که می خواهید انجام بدین رو تو تابع onclicklistener بنویسد حلا اگه یه اسکرین شات بزارین بهتر میشه . (10 سال پیش)
0 0
خوب شما کارهایی که باید تو باتن اول انجام بشه رو تو یه تابع بنویسین بعد این تابع رو تو OnClick هر دو تا باتن فراخوانی کنید. (10 سال پیش)
0 0
میخوام خود ان کلیک فراخوانی بشه ........ (10 سال پیش)
0 0
نمیدونم دقیقا میخوای چیکار کنی . اگه دقیق بگی با کلیک میخوای چه کاری انجام بشه بهتر بود (10 سال پیش)
0 0
پس شما می خواهید با کلیک رو باتن دوم علاوه بر انجام یکسری کد onclick یک باتن دیگه رو صدا کنید اما باید بدونید که این کار نه منطقی هستش و نه شدنی (تو جاوا ممکن نیست) و راه درست راهیه که آریا گفته (10 سال پیش)
0 0
پس شما می خواهید با کلیک رو باتن دوم علاوه بر انجام یکسری کد onclick یک باتن دیگه رو صدا کنید اما باید بدونید که این کار نه منطقی هستش و نه شدنی (تو جاوا ممکن نیست) و راه درست راهیه که آریا گفته (10 سال پیش)
0 0
دقیقا میخوای بعد از کیلیک روی باتن دوم، چه کاری توی باتن اول انجام شه؟بگو تا بتونیم نمونه کد بدیم (10 سال پیش)
+2 0
بعد از دستورات onClick دکمه دوم ، اگه میخواین دستورات onClick دکمه اول هم اجرا بشه میتونی در onClick دکمه دوم بنویسی : btn1.performClick(); اونوقت انگار کلید 1 کلیک شده و دستوراتش اجرا میشه . کاری که آریا هم گفت درسته و میتونی انجام بدی ، ولی این روش نیازی به متد اضافه نداره . (10 سال پیش)
0 0
ماشاء الله رضا (10 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
Criss  10 سال پیش
+4 0

شما باید لیستنر هارو بشناسید و بدونید که به چه صورت کار میکنند  ، لیستنر ها باید صدا زده بشوند که کد های درون اونها اجرا بشه ، برای یک Button لیستنر اختصاصی وجود داره که صدا زده شدنش تنها به وسیله کلید روی صفحه گوشی هست و حتما باید روی عنصری از جنس View کلید بشه و اون View حتما یک ID داشته باشه و این ایدی باید با ایدی که برای لیستنر وجود داره یکی باشه ،

شما اگر میخواید دقیقا لیستنر اختصاصی برای View هارو صدا بزنید باید کدهاتون رو تغییر بدید و کمی لیستنرها رو اختصاصی تر کرد و کمی تغییر بدید ولی روش های زیر رو بهتون پیشنهاد میکنم ، بجای اینکه بخواید از لیستنر ها استفاده کنید  یک لیستنر بسازید !

 

شما دوتا تابع onClickListener دارید ،که روی دوتا ویو کاملا مجزا از هم هست با ایدی اونها با هم فرق داره

میخواید با تا زمانی که روی Btn_1  کلیک نشده ، Btn_2 کار نکنه

به شکل زیر کد بزنید :

booleqn canClick = false;

onCreate(){

btn_1.onClickListener(){
canClick = true;
}

 btn_2.onClickListener(){
if(canClick ){
canClick = false;
// . . .
}
}
}

 اگر یک سری کد دارید که برای Btn_2 نوشته شده و میخواید با کلید روی Btn_1 هم کارهای Btn_2 هم انجام بشه باید بصورت زیر کد بنویسید :

 
onCreate(){

btn_1.onClickListener(){
someTask_1();
someTask_2();
}

 btn_2.onClickListener(){
someTask_2();
}
}

private void someTask_1(){
Log.i("LOG","BTN_1");
}

private void someTask_2(){
Log.i("LOG","BTN_2");
}

پیشنهاد میکنم تا میتونید از متد ها استفاده کنید و اصلا کدهای خودتون رو توی لیستنرهای مربوط به کلیک شدن و یا توی OnCreate ننویسید ، همیشه برای هرکاری متد استفاده کنید حتی اگر قراره Log بفرستید هم از متد استفاده کنید :

private void printLog(String key, String text) {
Log.i(key, text);
}


printLog("LOG","TEST");

یکی از کاربردهای متد به روش بالا این هست که مثلا << شما بعد از  اتمام پروژه نیاز ندارید بگردید تمام لاگ هارو کامنت کنید ، فقط لاگ موجود توی این متد رو کامنت میکنید :

 یکی دیگه از موارد مفید در استفاده از متد ها : برای مثال شما همیشه یک دکمه دارید که یک کار مشخص رو توی برنامه براتون انجام میده پس همیشه متد اماده برای اون کار رو داشته باشید :

    private void BrowseFile(View btn) {
btn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
Intent i = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(i, 200);
}
});
}

و همیشه بصورت زیر استفاده کنید :

    Button btnBrowse = (Button) findViewById(R.id.btnBrowse);
BrowseFile(btnBrowse);

 اگر مشکلتون همچنان حل نشده بیشتر راهنمایی کنید ، فکر نمیکنم کاری باشه که با روش های اوصولی برنامه نویسی و الگوریتم نویسی صحیح انجام نشه !


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