کلیدستان

نسخه‌ی کامل: استفاده از button در سرویس (در برنامه نویسی اندروید)
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام
پروژه ای با سرویس به کمک http://www.kelidestan.com/forum/showthread.php?tid=4811 ساخته ام و روی اون button  قرار داده ام اکنون کلید 2855 را خواندم اما برای استفاده از button  یا  ToggleButton در سرویس نتوانستم از آن استفاده کنم .
لطفا راهنمایی بفرمایید که onclicklistener  چگونه در سرویس استفاده می شود
ممنونم
سلام.
Button را در کجا قرار داده اید (چون در آن پروژه، کاربر با اشاره بر روی خود پیام نمایش داده شده، به یک Activity از برنامه اندروید وارد می شد) ؟
همچنین بخش مربوط به شناسایی Button و بقیه کدهای آن (مربوط به Button ) را ذکر کنید و بفرمایید که از کدام خط از کدها، خطا می گیرد و عبارت خطا چیست.

 
کد پی‌اچ‌پی:
    @Override
    
public void onCreate() {
        
super.onCreate();
        
        
instance this;
        
        
overlayView = new MyView(this,this); //----------> change
        
LayoutInflater inflater = (LayoutInflatergetSystemService(LAYOUT_INFLATER_SERVICE);
        
View layout inflater.inflate(R.layout.overlaynull);
        
Button view = (Buttonlayout.findViewById(R.id.button14);
        
button14.setOnClickListener((OnClickListenerthis);     <=======  error line button14    
        
    
}
public 
void onClick(View src) {
        
        if
(src.getId()==R.id.button14)
        {      
        try 
{
        } catch (ActivityNotFoundException e) {
             // default message
        } catch (Exception e) {
             // default message
        }}
        

شناسایی

کد پی‌اچ‌پی:
button14.setOnClickListener((OnClickListenerthis); 

را ایراد میگیره

can not be resolved

ممنون
این دو خط از کدها را ببینید :

کد پی‌اچ‌پی:
Button view = (Buttonlayout.findViewById(R.id.button14);
button14.setOnClickListener((OnClickListenerthis);     <=======  error line button14 

شما Button را با نام view شناسایی کرده اید، ولی در خط بعد، نام button14 را به کار برده اید (که id آن می باشد). شما باید همان نامی را به کار ببرید که برای شناسایی Button انتخاب کرده اید (در اینجا view). همچنین نام انتخابی نیز مناسب نمی باشد و نام view را برای موردی به کار ببرید که از جنس View باشد.
همچنین کدهای روش setOnClickListener نیز ناقص است.
توصیه می کنم کلید زیر در مورد ساخت Button را بخوانید :

کلید شماره 2728

سلام
بابت خطای view  متشکرم .
لطفا راهنمایی بفرمایید .برای معرفی button  از کلید 2855 http://www.kelidestan.com/keys/keys.php?key=2855 استفاده کردم .
الان به محض اجرا  service این error ها را میده که نمیدانم کدام اصلی می باشد.
البته onclick  را در سرویسی که از آن مشتق شده است نیز تعریف کردم
آیا بایدخود کلیدی را هم که صدا میزنیم در سرویس مادر تعریف کنیم ؟!!
01-08 22:02:45.640: E/AndroidRuntime(1478): FATAL EXCEPTION: main
01-08 22:02:45.640: E/AndroidRuntime(1478): Process: com.example, PID: 1478
01-08 22:02:45.640: E/AndroidRuntime(1478): java.lang.RuntimeException: Unable to create service com.example.MyService: java.lang.ClassCastException: com.example.MyService cannot be cast to android.view.View$OnClickListener
01-08 22:02:45.640: E/AndroidRuntime(1478):     at android.app.ActivityThread.handleCreateService(ActivityThread.java:2741)
01-08 22:02:45.640: E/AndroidRuntime(1478):     at android.app.ActivityThread.access$1800(ActivityThread.java:144)
01-08 22:02:45.640: E/AndroidRuntime(1478):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1361)
01-08 22:02:45.640: E/AndroidRuntime(1478):     at android.os.Handler.dispatchMessage(Handler.java:102)
01-08 22:02:45.640: E/AndroidRuntime(1478):     at android.os.Looper.loop(Looper.java:135)
01-08 22:02:45.640: E/AndroidRuntime(1478):     at android.app.ActivityThread.main(ActivityThread.java:5221)
01-08 22:02:45.640: E/AndroidRuntime(1478):     at java.lang.reflect.Method.invoke(Native Method)
01-08 22:02:45.640: E/AndroidRuntime(1478):     at java.lang.reflect.Method.invoke(Method.java:372)
01-08 22:02:45.640: E/AndroidRuntime(1478):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
01-08 22:02:45.640: E/AndroidRuntime(1478):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
01-08 22:02:45.640: E/AndroidRuntime(1478): Caused by: java.lang.ClassCastException: com.example.MyService cannot be cast to android.view.View$OnClickListener
01-08 22:02:45.640: E/AndroidRuntime(1478):     at com.example.MyService.onCreate(MyService.java:29)
01-08 22:02:45.640: E/AndroidRuntime(1478):     at android.app.ActivityThread.handleCreateService(ActivityThread.java:2731)
01-08 22:02:45.640: E/AndroidRuntime(1478):     ... 9 more
01-08 22:07:45.724: I/Process(1478): Sending signal. PID: 1478 SIG: 9