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

جناب آقاجانی : نمیدونم چرا Interface رو درک نمیکنم !

Reza  8 سال پیش  7 سال پیش
0 0

سلام جناب آقاجانی ، خسته نباشید

    حدود 2 هفته ای میشه که آموزش های اندروید رو گرفتم ، دستتون درد نکنه ، واقعا عالیه و تونستم بدون هیچ مشکلی طی 10 روز بخش های 5 و 6 و 7 و 8 رو تموم کنم و تا اینجا همه مباحث رو خوب متوجه شدم . اما به محض اینکه وارد قسمت 3 از بخش 8 ( Interface ) شدم ، و با توجه به اینکه شما فرمودید مبحث بسیار مهمیه و در پروژه های آینده خیلی ازش استفاده میشه ، دیگه از برنامه نویسی نا امید شدم . الان 2 روزه که هر چی این قسمت رو میبینم نمیتونم خوب درکش کنم ، البته یه چیزای خیلی کمی فهمیدم ولی در مقایسه با بخش های قبلی که 100 % یاد گرفتم ، این قسمت رو حدود 10 % فهمیدم و دقیقا نمیدونم کاربردش کجاست ؟

    حالا سوالم اینه که با توجه به اینکه در توضیحات مربوط به این قسمت نوشتید " مفاهیم مطرح شده در ویدیو را خوب یاد بگیرید " ، آیا میتونم بخش بعدی رو شروع کنم تا با مثال هاش این مبحث رو یاد بگیرم یا اینکه حتما باید به درک کامل بخش Interface برسم ؟

و اگه نباید به بخش بعد برم ، لطفا راهنماییم کنید که چیکار کنم Interface رو خوب درک کنم ؟

بسیار ممنون .

0 0
interface ها که آسونند؟کجاش گیر داری؟حیونها هم صدا دارند و هم حرکت و ماشین حرکت داره !اگه خواستی بگو شاید تونستم راهنمایی کنم (8 سال پیش)
0 0
کلا نمیدونم کاربردش چیه ؟ مثلا همون مثالی که در سورس نوشته شده ، خب میتونه با نوشتن یه کلاس معمولی و قرار دادن متد در اون به همون نتیجه رسید . (8 سال پیش)
0 0
از کاربرد های interface ها استفاده اونها به عنوان lisener هست bookmark list رو دانلود کردی؟قسمت دوم interface ها به کاربردش میپردازه (8 سال پیش)
0 0
آره ، دیدم ، کلش رو 4 بار دیدم ، فقط نمیدونم ارتباط بین متد onData در کلاس اصلی و همون متد در کلاس DataReceiver چیه ؟ (8 سال پیش)
+3 0
دوست عزیز این بخش رو ول کنید < برید جلو < وقتی به بخش 15 رسیدید که از Listener ها استفاده میشه < میتونید برگردید و این بخش رو نیگاه کنید (8 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
rad  8 سال پیش
+3 0

اول یک interface ایجاد میکنیم وداخلش یک متد با پارامتری از جنس String تعریف میکنیم.

public interface OnDataListener {

public void onData(String data);
}

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

public class DataReceiver extends Thread {

    public OnDataListener onDataListener;

چون این فیلد از جنس اینترفس تعریف شده پس به متد های داخل آن که OnData هست میتوان دسترسی داشت

 onDataListener.onData("Some Result");

و وقتی ما در کلاس اصلی ، مثل زیر یک OnclickLisener تعریف میکنیم

 DataReceiver dataReceiver = new DataReceiver();
dataReceiver.onDataListener = new OnDataListener() {

@Override
public void onData(String data) {
Log.i("LOG", "Data: " + data);
}
};
dataReceiver.start();
}

خود به خود متد OnData  در اینجا Override میشود که در بر دارنده رشته Some Result هست

حال سوال شما :متد onData در کلاس اصلی همان Override شده ی اینترفیس OnDataListener هست

ودر کلاس DataReceiver ما فقط توسط  یک فیلد آنرا فراخوانی و مقدار دهی کرده ایم

که البته میتوان با تغییر نام فیلد کلاس متد و رشته مورد اشاره مسئله، مبحث بهتر جا بیافتد

0 0
ممنون ، کم کم دارم میفهمم . (8 سال پیش)
0 0
ببخشید من هم توی مبحث لیسنر مشکل دارم.الان ک توضیحات شما رو خوندم بیستر متوجه شدم ولی هنوز هم متوجه نشدم که چرا DataReceiver رو ساختیم و توش فیلد onDataListener رو ایجاد کردیم؟کلا DataReceiver این وسط چیکاره س/؟ بنظر خودم چون مفهوم فیلد رو عمیق نفهمیدم این سوال برام پیش اومده؟ (7 سال پیش)

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