Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/joaoppedrosa/recyclerview-android
Trabalhando com eventos do usuário sobre os itens da lista
https://github.com/joaoppedrosa/recyclerview-android
Last synced: 9 days ago
JSON representation
Trabalhando com eventos do usuário sobre os itens da lista
- Host: GitHub
- URL: https://github.com/joaoppedrosa/recyclerview-android
- Owner: joaoppedrosa
- Created: 2019-01-07T17:50:26.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2015-04-11T15:40:30.000Z (over 9 years ago)
- Last Synced: 2024-04-16T20:11:57.301Z (7 months ago)
- Language: Java
- Size: 230 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# RecyclerView-Android
####Este repositório contém a implementação passo a passo da utilização da RecyclerView em uma aplicação android.## 01 - Gradle
Adicionando as dependências no gradle, arquivo build.gradle```gradle
dependencies {compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
compile 'com.android.support:recyclerview-v7:+'
}
```## 02 - Vamos codar
Criando a interface para que possamos receber o retorno do clique do usuário em um item da lista, observe como foi tratado de forma genérica o retorno da interação do usuário com um item da lista.```java
public interface ClickListener {public void onItemClicked(View view, T data);
}
```Implementando o listener para receber o retorno do interação do usuário com um item da lista. Apenas precisamos tipar a nossa interface para que ela possa receber o tipo de objeto correto, no caso objetos User ou qualquer outro que desejarmos.
```java
public class Main extends BaseActionBarAcitvity implements ClickListener {...
@Override
protected void setListeners() {userAdapter.setClickListener(this);
}@Override
public void onItemClicked(View view, User user) {showShortToast(user.getNome());
}
...
}
```Implementando o nosso adapter de usuários, arquivo UserAdapter.java
```java
public class UserAdapter extends RecyclerView.Adapter {private List userList;
private ClickListener clickListener;public UserAdapter() {
userList = new ArrayList(0);
}@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_user_list,
viewGroup, false);return new ViewHolder(view);
}@Override
public void onBindViewHolder(ViewHolder viewHolder, int position) {User user = userList.get(position);
viewHolder.tvNome.setText(user.getNome());
viewHolder.tvEmail.setText(user.getEmail());
}@Override
public int getItemCount() {return userList.size();
}public boolean isEmpty() {
return userList == null || userList.isEmpty();
}public void addUsers(User... users) {
if (users == null || users.length <= 0) {
return;
}userList.addAll(new ArrayList(Arrays.asList(users)));
notifyDataSetChanged();
}public List getUserList() {
return userList;
}public User getItem(int position) {
if (userList == null || userList.isEmpty()) {
return null;
}if(position >= userList.size()) {
return userList.get(userList.size() -1);
}if(position < 0) {
return userList.get(0);
}return userList.get(position);
}public void setClickListener(ClickListener clickListener) {
this.clickListener = clickListener;
}class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
TextView tvNome;
TextView tvEmail;public ViewHolder(View view) {
super(view);
view.setOnClickListener(this);tvNome = (TextView) view.findViewById(R.id.tv_name);
tvEmail = (TextView) view.findViewById(R.id.tv_email);
}@Override
public void onClick(View v) {if(clickListener != null) {
clickListener.onItemClicked(v, getItem(getPosition()));
}
}
}
}
```