הוספת אירוע click ל item של ListView שממומש עם אדאפטר

קדם Forums הייטק Mobile Development הוספת אירוע click ל item של ListView שממומש עם אדאפטר

  • הוספת אירוע click ל item של ListView שממומש עם אדאפטר

    פורסם ע"י chaya1724  חברה on 28/01/2020 ב6:59 am

    איך אפשר לעשות שמתוך הרשימה אני אוכל ללחוץ על item מהרשימה למרות שהוא לא כפתור

    חני פולק הגיבה לפני 4 שנים, 3 חודשים 2 חברות · 8 תגובות
  • 8 תגובות
  • חני פולק

    הייטק
    חברה
    28/01/2020 ב7:24 am

    דבר ראשון, כמעט לכל קומפוננט בXML ניתן להוסיף ארוע. בJAVA את אומרת לו: something.setOnClickListener(…); דבר נוסף; כדי להוסיף ארוע לitem ברשימה יש 2 אופציות: 1. ארוע בלחיצה על השורה כולה, אותה אפשר להוסיף לרשימה או לitem. הוספת ארוע לitem של listView: listview.setOnItemClickListener(new OnItemClickListener(){
    @Override
    public void onItemClick(AdapterViewadapter,View v, int position){
    ItemClicked item = adapter.getItemAtPosition(position);
    Intent intent = new Intent(Activity.this,destinationActivity.class);
    //based on item add info to intent
    startActivity(intent);
    }
    }); או בתוך פונקציית getView של האדפטר את יכולה לשים פונקציה setOnClickLister 2. אפשר לשים על כל רכיב באדפטר ארוע אחר, כמו כל אקטיביטי שבו על כל רכיב יש לך ארועים. שוב פעם בתוך פונקצית getView את מגדירה את זה… בהצלחה!

  • chaya1724

    חברה
    חברה
    28/01/2020 ב7:57 am

    שלום חני
    לא כ”כ הבנתי מה זה ItemClicked item = adapter.getItemAtPosition(position); מי זה ה ItemClicked item?
    האם זה המשתנה שבו אני מכניסה את ה id של הitem שעליו עשיתי android:clickable=”true” תודה רבה מראש על תשובתך

  • חני פולק

    הייטק
    חברה
    28/01/2020 ב8:02 am

    android:clickable אומר שאת מאפשרת שילחצו עליו. ברירת המחדל היא שאפשר ללחוץ על הכל. אבל את גם צריכה להגדיר מה יקרה ברגע שאת לוחצת עליו… מבינה? כשאת מגדירה: getItemAtPosition את בעצם מקבלת את הitem בנמצא בposition מסויים ועליו מכילה ארוע. כשיש ארועים שאת לא מבינה את פשרם, תתרגמי לך את המלל… זה די פשוט…

  • חני פולק

    הייטק
    חברה
    28/01/2020 ב9:47 am

    הסתדרת?

  • chaya1724

    חברה
    חברה
    28/01/2020 ב1:01 pm

    האמת שלא כל כך,
    ניסיתי להעתיק את הקוד שנתת לי , היה שגיאה בסינטקסט , ניסיתי פונקציה מגוגל , צרפתי
    CustomListAdapter adapter = new CustomListAdapter(this, forms);

    ListView listView = (ListView) findViewById(R.id.commitment_forms_list);
    listView.setAdapter(adapter);

    // listView.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() {
    // @Override
    // public void onItemClick(android.widget.AdapterView parent,
    // View view, int position, long id) {
    // Intent intent = new Intent(CommitmentsActivity.this, CommitmentFormActivity.class);
    // startActivity(intent);
    // Toast.makeText(CommitmentsActivity.this,
    // forms.get(position).getName(), Toast.LENGTH_LONG).show();
    // }
    }); ועדיין לא מגיע לפונקציה הזאתי אשמח אם תעזרי לי למצוא מה יכול להיות הבעיה! אין מילים

  • חני פולק

    הייטק
    חברה
    28/01/2020 ב1:07 pm

    לא שמתי קוד מדוייק, שמתי רק את הכיוון, תחפרי בגוגל על כל הפתרונות המוצעים. בגדול, תבני CustomListAdapter, תיצרי XML של LAYOUT מיוחד עבור השורה עם כל הרכיבים. בפונקצית GETVIEW שימי בכל רכיב מה שבא לך כולל מלל וארועים ואז תקראי לאדפטר מהlistView בActivity בהצלחה!

  • chaya1724

    חברה
    חברה
    28/01/2020 ב1:10 pm

    אוקיי ממש תודה רבה

  • חני פולק

    הייטק
    חברה
    30/01/2020 ב10:28 am

    הסתדר?

Log in to reply.

מעוניינת בפרסום

חשוב: לא כל פרסום מאושר, נא לפרט בדיוק במה מדובר

ניתן לפנות גם במייל ל: [email protected]

מה את מחפשת?

מילות מפתח פופולריות לפי תחומים

ניתן לחפש גם מילות מפתח , תפקידים וכישרון מיוחד שאינם מופיעים ברשימות - "נהגת", "ציור בחול" וכדומה.

דילוג לתוכן