הוספת אירוע click ל item של ListView שממומש עם אדאפטר
קדם ‹ Forums ‹ הייטק ‹ Mobile Development ‹ הוספת אירוע click ל item של ListView שממומש עם אדאפטר
-
הוספת אירוע click ל item של ListView שממומש עם אדאפטר
פורסם ע"י chaya1724 חברה on 28/01/2020 ב6:59 amאיך אפשר לעשות שמתוך הרשימה אני אוכל ללחוץ על item מהרשימה למרות שהוא לא כפתור
חני פולק הגיבה לפני 4 שנים, 11 חודשים 2 חברות · 8 תגובות -
8 תגובות
-
000חברה חדשה
דבר ראשון, כמעט לכל קומפוננט בXML ניתן להוסיף ארוע. בJAVA את אומרת לו: something.setOnClickListener(…); דבר נוסף; כדי להוסיף ארוע לitem ברשימה יש 2 אופציות: 1. ארוע בלחיצה על השורה כולה, אותה אפשר להוסיף לרשימה או לitem. הוספת ארוע לitem של listView: listview.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView>adapter,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 את מגדירה את זה… בהצלחה! -
000חברה חדשה
שלום חני
לא כ”כ הבנתי מה זה ItemClicked item = adapter.getItemAtPosition(position); מי זה ה ItemClicked item?
האם זה המשתנה שבו אני מכניסה את ה id של הitem שעליו עשיתי android:clickable=”true” תודה רבה מראש על תשובתך -
000חברה חדשה
android:clickable אומר שאת מאפשרת שילחצו עליו. ברירת המחדל היא שאפשר ללחוץ על הכל. אבל את גם צריכה להגדיר מה יקרה ברגע שאת לוחצת עליו… מבינה? כשאת מגדירה: getItemAtPosition את בעצם מקבלת את הitem בנמצא בposition מסויים ועליו מכילה ארוע. כשיש ארועים שאת לא מבינה את פשרם, תתרגמי לך את המלל… זה די פשוט…
-
000חברה חדשה
האמת שלא כל כך,
ניסיתי להעתיק את הקוד שנתת לי , היה שגיאה בסינטקסט , ניסיתי פונקציה מגוגל , צרפתי
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();
// }
}); ועדיין לא מגיע לפונקציה הזאתי אשמח אם תעזרי לי למצוא מה יכול להיות הבעיה! אין מילים -
000חברה חדשה
לא שמתי קוד מדוייק, שמתי רק את הכיוון, תחפרי בגוגל על כל הפתרונות המוצעים. בגדול, תבני CustomListAdapter, תיצרי XML של LAYOUT מיוחד עבור השורה עם כל הרכיבים. בפונקצית GETVIEW שימי בכל רכיב מה שבא לך כולל מלל וארועים ואז תקראי לאדפטר מהlistView בActivity בהצלחה!
Log in to reply.