سؤال

لدي مشكلة...لدي وجهات نظر نصية مختلفة مع المستمع.مثل هؤلاء:

    help_modul.setOnClickListener(this);
    help_timetable.setOnClickListener(this);
    help_credits.setOnClickListener(this);
    help_todo.setOnClickListener(this);

وهنا مستمعي:

@Override
public void onClick(View v) {

 String temp=   v.getId(); // DOESNT WORK
 Toast.makeText(this, temp, Toast.LENGTH_LONG).show();

}

في مستمعي أريد أن أختلف بين وجهة نظري النصية....على سبيل المثال، انقر فوق حقل نص "أ"، افعل ذلك، إذا قمت بالنقر فوق حقل نص آخر، فقم بعملية أخرى..

هل لديك أي اقتراحات؟

هل كانت مفيدة؟

المحلول

جرب شيئًا مثل هذا: Genacodicetagpre

نصائح أخرى

يمكنك ذلك أ) جعل InstanceListeners مثل: Genacodicetagpre

أو يمكنك ذلك ب) تحقق من حالات عرض النص الخاص بك: Genacodicetagpre

استخدم حالة التبديل Genacodicetagpre

في هذا البيان String temp= v.getId(); // DOESNT WORK أنت تحصل على معرف العرض الذي هو من نوع البيانات long ومن ثم التنازل ل String متغير، والذي قد يكون صحيحا ولكنه نهج سيء.

استخدم هذا الكود المحسن في مكانه:

 @Override
 public void onClick(View v) {
    if(v.getId() == help_modul.getId())
    {
        /*do some work on the click*/
    }
    else if(v.getId() == help_timetable.getId())
    {
        /*do some work on the click*/
    }
    else if(v.getId() == help_credits.getId())
    {
        /*do some work on the click*/
    }
    else if(v.getId() == help_todo.getId())
    {
        /*do some work on the click*/
    }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top