Android: ListView Click ImageButton Sử Dụng BaseAdapter ...
Có thể bạn quan tâm
Quảng Cáo Đầu Bài
Translate
Menu List
- AAD1 (12)
- ADD2 (11)
- ADF2 (3)
- adsense (4)
- Ajax (5)
- Android (32)
- Angular 2 (59)
- AngularJS (9)
- Bảo Vật Quốc Gia (2)
- Blogger (4)
- Bootstrap 3 (2)
- C (7)
- C# (39)
- Canvas (1)
- Castles Abandoned (1)
- Chiến Tranh Thế Giới 2 (5)
- Chiến Tranh Việt Nam (12)
- Command Line (5)
- CSS (16)
- Deploy errors (1)
- Design pattern (8)
- Điện Tử Vi Mạch (47)
- Docker (1)
- Domain (1)
- eclipse (8)
- EJB (9)
- Excel (1)
- Facebook (1)
- Games pc (48)
- giaima (116)
- Git (5)
- Google (2)
- Hack (4)
- Horror Videos (2)
- Html (7)
- java (60)
- Java Advanced (14)
- Java Collection (3)
- Java Core (44)
- Java Interview Questions (10)
- JAVA Web Services (8)
- JavaFX (2)
- JavaScript (25)
- Job Search (1)
- jQuery (22)
- JSF (7)
- Json (7)
- Jsp & Servlet (45)
- Kiếm tiền online (8)
- Kiến Thức (1)
- Legendary and Feng Shui (2)
- Link Website (6)
- Linux (9)
- Management (2)
- Mobile (1)
- Mua Bán (1)
- MVC (1)
- Mysql (5)
- NetBeans (1)
- News (1)
- Nginx (1)
- NodeJS (27)
- QR Code (2)
- Radio Online (3)
- ReactJS (17)
- ReactJS Antd Design (1)
- ReactJS Notes (6)
- ReactJS Redux (12)
- Regex (1)
- RxJS (1)
- Shortcut (1)
- Software (1)
- spring (4)
- Spring Boot (4)
- Sql (23)
- Struts 1 Framework (8)
- Struts 2 Framework (27)
- Swing (39)
- Thủ thuật (1)
- tools (11)
- Tutorial (1)
- Vietnam War History (8)
- virus (2)
- Visual studio (1)
- Web (18)
- Wifi (2)
- Windows Store (47)
- World War (4)
- XML (26)
- Youtube (14)
Total Pageviews
Giai Ma. Powered by Blogger.12 January 2017
Android: ListView Click ImageButton Sử Dụng BaseAdapter & Interface (Android Studio)
activity_main.xml Java Android 2017 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.lonely.listviewbaseadapter.MainActivity"> <ImageView android:id="@+id/iv_avatar_top" android:layout_width="match_parent" android:layout_height="110dp" android:background="#2400ccb1" android:layout_centerHorizontal="true" android:src="@drawable/person_avartar" /> <EditText android:id="@+id/ed_name_top" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Welcome" android:textColor="#9e0018" android:textSize="25sp" android:background="#2400ccb1" android:gravity="center" android:layout_marginBottom="20dp" android:layout_below="@id/iv_avatar_top" /> <ListView android:id="@+id/lv_contact" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/ed_name_top" /> </RelativeLayout>
item_contact.xml Java Android 2017 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <ImageView android:id="@+id/iv_avatar" android:layout_width="70dp" android:layout_height="70dp" android:src="@drawable/avatar1" /> <TextView android:id="@+id/tv_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="13dp" android:layout_toRightOf="@id/iv_avatar" android:text="Ewin Rommel" android:textColor="#000350" android:textSize="17sp" /> <TextView android:id="@+id/tv_phone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/tv_name" android:layout_marginTop="5dp" android:layout_toRightOf="@id/iv_avatar" android:text="098372323" android:textColor="#ff0008" android:textSize="19sp" /> <LinearLayout android:id="@+id/ln_right_001" android:layout_alignParentRight="true" android:layout_marginTop="18dp" android:orientation="horizontal" android:layout_width="100dp" android:layout_height="wrap_content"> <ImageButton android:id="@+id/iv_btn_edit" android:layout_weight="1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@null" android:src="@drawable/ic_action_edit" /> <ImageButton android:id="@+id/iv_btn_call" android:layout_weight="1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@null" android:src="@drawable/ic_action_call" /> </LinearLayout> </RelativeLayout>
MainActivity.java Java Android 2017 package com.example.lonely.listviewbaseadapter; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.AdapterView; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity implements IOnChildItemClick{ private ListView lvContact; private List<ContactModel> listContact = new ArrayList<>(); private ContactAdapter mAdapter; private TextView edNameTop; private ImageView ivAvatarTop; //Khi làm việc với ListView thường sẽ có 3 bước chính @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //Bước 1: Tạo data initData(); initView(); //Bước 2: Tạo adapter ở ví dụ này chúng ta tự tạo một Adapter không phụ thuộc vào Adapter có sẵn mAdapter = new ContactAdapter(listContact, this); mAdapter.registerChildItemClick(this); //Bước 3: Tạo ListView Set adapter vào ListView lvContact.setAdapter(mAdapter); //Bắt sự kiện click vào ListView dòng bao nhiêu nhận biết thông qua position lvContact.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { ContactModel contactModel = listContact.get(position); Toast.makeText(MainActivity.this, contactModel.getName(), Toast.LENGTH_SHORT).show(); } }); } public void initView(){ lvContact = (ListView) findViewById(R.id.lv_contact); edNameTop = (TextView) findViewById(R.id.ed_name_top); ivAvatarTop = (ImageView) findViewById(R.id.iv_avatar_top); } public void initData() { listContact.add(new ContactModel("Dương Triệu Vũ", "098987923521", R.drawable.avatar1)); listContact.add(new ContactModel("Dương Minh Ngọc", "098987923522", R.drawable.avatar2)); listContact.add(new ContactModel("Dương Hồng Tuyền", "098987923524", R.drawable.avatar3)); listContact.add(new ContactModel("Dương Tử Quỳnh", "098987923525", R.drawable.avatar4)); listContact.add(new ContactModel("Dương Anh Khang", "098987923521", R.drawable.avatar1)); listContact.add(new ContactModel("Đinh Diệu Linh", "098987923525", R.drawable.avatar2)); listContact.add(new ContactModel("Nguyễn Ngọc Anh", "098987923521", R.drawable.avatar3)); listContact.add(new ContactModel("Triệu Tài Vinh", "098987923522", R.drawable.avatar4)); listContact.add(new ContactModel("Hoàng Văn Kiên", "098987923524", R.drawable.avatar1)); } @Override protected void onDestroy() { super.onDestroy(); mAdapter.unRegisterChildItemClick(); } @Override public void onItemChildClick(int position) { ContactModel c = listContact.get(position); edNameTop.setText(c.getName()); ivAvatarTop.setImageResource(c.getImage()); } }
ContactModel.java Java Android 2017 package com.example.lonely.listviewbaseadapter; /** * Created by Lonely on 1/12/2017. */ public class ContactModel { private String name; private String phone; private int image; public ContactModel(String name, String phone, int image) { this.phone = phone; this.image = image; this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public int getImage() { return image; } public void setImage(int image) { this.image = image; } }
ContactAdapter.java Java Android 2017 package com.example.lonely.listviewbaseadapter; import android.Manifest; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.net.Uri; import android.support.v4.app.ActivityCompat; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import java.util.List; /** * Created by Lonely on 1/12/2017. */ public class ContactAdapter extends BaseAdapter { private List<ContactModel> listContact; private Context mContext; private IOnChildItemClick iOnChildItemClick; public void registerChildItemClick(IOnChildItemClick iOnChildItemClick) { this.iOnChildItemClick = iOnChildItemClick; } public void unRegisterChildItemClick() { this.iOnChildItemClick = null; } public ContactAdapter(List<ContactModel> listContact, Context mContext) { this.listContact = listContact; this.mContext = mContext; } @Override public int getCount() { return listContact.size(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(final int position, View convertView, ViewGroup parent) { if (convertView == null) { LayoutInflater inflater = ((Activity) mContext).getLayoutInflater(); convertView = inflater.inflate(R.layout.item_contact, null); ViewHolder holder = new ViewHolder(); holder.tvName = (TextView) convertView.findViewById(R.id.tv_name); holder.tvPhone = (TextView) convertView.findViewById(R.id.tv_phone); holder.ivAvatar = (ImageView) convertView.findViewById(R.id.iv_avatar); holder.ivBtnEdit = (ImageView) convertView.findViewById(R.id.iv_btn_edit); holder.ivBtnCall = (ImageView) convertView.findViewById(R.id.iv_btn_call); convertView.setTag(holder); } ViewHolder holder = (ViewHolder) convertView.getTag(); ContactModel model = listContact.get(position); holder.tvName.setText(model.getName()); holder.tvPhone.setText(model.getPhone()); holder.ivAvatar.setImageResource(model.getImage()); //Lắng nghe sự kiện click vào icon edit //dùng interface để gửi position qua MainActivity.java để setText & setImageResource //cách làm này có thể rất nhiều người chưa biết và tất cả các ví dụ trên internet chưa đề cập vấn đề này holder.ivBtnEdit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { iOnChildItemClick.onItemChildClick(position); } }); //Lắng nghe sự kiện click vào icon call holder.ivBtnCall.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { onCall(position); } }); return convertView; } //Tạo một lần duy nhất để tránh việc tạo nhiều lần làm chậm ứng dụng static class ViewHolder { TextView tvName; TextView tvPhone; ImageView ivAvatar; ImageView ivBtnEdit; ImageView ivBtnCall; } private void onCall(int position) { ContactModel contactModel = listContact.get(position); //======ACTION_CALL======// Intent intent = new Intent(android.content.Intent.ACTION_CALL, Uri.parse("tel:" + contactModel.getPhone())); //Nếu dùng ACTION_CALL khi startActivity(intent) nó generate (sinh ra) phần chữ TO DO màu đen nhạt phía dưới if (ActivityCompat.checkSelfPermission(mContext, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) { // TODO: Consider calling // ActivityCompat#requestPermissions // here to request the missing permissions, and then overriding // public void onRequestPermissionsResult(int requestCode, String[] permissions, // int[] grantResults) // to handle the case where the user grants the permission. See the documentation // for ActivityCompat#requestPermissions for more details. return; } //=====ACTION_DIAL======// //Còn nếu sử dụng ACTION_DIAL thì hoàn toàn không có như phần ACTION_CALL//Intent intent = new Intent(android.content.Intent.ACTION_DIAL, Uri.parse("tel:"+contactModel.getPhone()));mContext.startActivity(intent); } }
IOnChildItemClick.java Java Android 2017 package com.example.lonely.listviewbaseadapter; /** * Created by Lonely on 1/12/2017. */ //Interface nó rất linh hoạt nếu chúng ta biết sử dụng nó vì với này public interface IOnChildItemClick { void onItemChildClick(int position); } Download icon zip | Download project zip ← Newer Post Older Post → Home 0 nhận xét:
Post a Comment
Meditation Music , Relaxing Music
Bài đăng nổi bật
-
Video bocah berazil - Horror Videos Video bocah berazil "Warning: Can cause psychological trauma" (Video no sensor di bawah) Ceritanya : Ini adalah persaingan jual b... -
☠️ Video chặt đầu nấu chín nạn nhân Nguyễn Xuân Đạt và 88 trang tài liệu tổng hợp về nghi phạm Đoàn Văn Sáng - Horror Videos "☠️Video kinh dị và 88 trang tài liệu" "Cảnh báo: Có thể gây chấn thương tâm lý" Nạ... -
Create and Publish Library in Angular 2+ (very basic - NPM) Create > build > adduser npm > publish 2021 Library Angular 2+ Step 1: ng new my-workspace --create-application = false ... -
Chiến dịch Đắk Tô - Tân Cảnh 1967 - Battle of Dak To November 1967 Trận Đắk Tô - Tân Cảnh Chiến dịch Đắk Tô - Tân Cảnh hay Trận Đắk Tô - Tân Cảnh năm 1967 , là một trận đụng độ trực tiếp giữa Quân Giải p... -
[@ant-design/icons-angular]: the icon reload-o does not exist or is not registered - Angular 2+ ERROR Error: [@ant-design/icons-angular]: the icon reload-o does not exist or is not registered Fix this here! Fix issue! Antd-Design Angul...
Túy Hoa Âm & Nhất Tiễn Mai
Top site
- Angular-2-training
- Mergevideo
- Reactjs Router V5
- Addaudiotovideo
- Mp3tovideo
- Tunestotube
- Bootstrap Cheatsheet
- Photo Editor
- Download Video China Site
- React Usehooks
- React Hooks Core
- iCSS
- JS Interview
- Replicate AI
- Angular Blog
- Game PS3
- Kebab Case
- CSS Polygon
- CSS Design
- FE Tool
- MySQL
- Thủ Thuật FB
- Glitch
- Carbon
- SSL Config
- Server World
- Useweb3
- Git Branching
- Rapidapi
- Algorithm Visualizer
- JSV 9000
- Create Slide
- Giải Phương Trinh
- Grammar checker
- Benchmark framework
- Replicate explore
- Replicate animesr
Best Friend
BACK TO TOP
Từ khóa » Cách Dùng Imagebutton
-
ImageView Và ImageButton Trong Android
-
Hướng Dẫn Và Ví Dụ Android ImageButton - Openplanning
-
Lập Trình Android - ImageButton
-
Android: ImageButton Trong Android | V1Study
-
Bài 8. ImageButton Và ImageView - Tin Học Cho Người Việt
-
Lập Trình Android A-Z – Bài 25: ImageButton - YouTube
-
AJ 11: ImageView Và ImageButton Trong Android - YouTube
-
ImageButton Trong Android
-
Điều Chỉnh Hình ảnh Trong ImageButton Trong Android? - HelpEx
-
Cách Có ImageButton Trong Suốt: Android? - HelpEx
-
ImageButton | Lap Trinh Cho Ban
-
Hỏi Về Android ImageButton Trong Android - Dạy Nhau Học
-
Nút | Android Developers