Last active
June 17, 2016 18:46
-
-
Save alvareztech/f21eb3fbe8a3cc9cd3e0b986c27be877 to your computer and use it in GitHub Desktop.
Aplicación de ejemplo RecyclerView, CardView y menus
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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: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=".activities.MainActivity"> | |
<android.support.v7.widget.RecyclerView | |
android:id="@+id/personasRecyclerView" | |
android:layout_width="match_parent" | |
android:layout_height="match_parent" | |
android:scrollbars="vertical" /> | |
</RelativeLayout> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
dependencies { | |
compile fileTree(dir: 'libs', include: ['*.jar']) | |
testCompile 'junit:junit:4.12' | |
compile 'com.android.support:appcompat-v7:23.4.0' | |
compile 'com.android.support:design:23.4.0' | |
compile 'com.android.support:cardview-v7:23.4.0' | |
compile 'com.android.support:recyclerview-v7:23.4.0' | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8"?> | |
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
android:layout_width="match_parent" | |
android:layout_height="wrap_content" | |
android:orientation="vertical"> | |
<android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto" | |
android:layout_width="match_parent" | |
android:layout_height="wrap_content" | |
card_view:cardCornerRadius="4dp"> | |
<LinearLayout | |
android:layout_width="match_parent" | |
android:layout_height="wrap_content" | |
android:orientation="vertical"> | |
<TextView | |
android:id="@+id/nombreTextView" | |
android:layout_width="match_parent" | |
android:layout_height="wrap_content" | |
android:text="@string/app_name" | |
android:textSize="24sp" /> | |
<TextView | |
android:id="@+id/signoTextView" | |
android:layout_width="match_parent" | |
android:layout_height="wrap_content" | |
android:text="@string/app_name" /> | |
</LinearLayout> | |
</android.support.v7.widget.CardView> | |
</LinearLayout> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package tech.alvarez.ejemplorecyclerview.activities; | |
import android.os.Bundle; | |
import android.support.v7.app.AppCompatActivity; | |
import android.support.v7.widget.LinearLayoutManager; | |
import android.support.v7.widget.RecyclerView; | |
import android.view.Menu; | |
import android.view.MenuItem; | |
import android.widget.Toast; | |
import tech.alvarez.ejemplorecyclerview.R; | |
import tech.alvarez.ejemplorecyclerview.adapters.OnItemClickListener; | |
import tech.alvarez.ejemplorecyclerview.adapters.PersonasAdapter; | |
import tech.alvarez.ejemplorecyclerview.models.Persona; | |
public class MainActivity extends AppCompatActivity implements OnItemClickListener { | |
private RecyclerView personasRecyclerView; | |
private PersonasAdapter personasAdapter; | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_main); | |
personasRecyclerView = (RecyclerView) findViewById(R.id.personasRecyclerView); | |
personasRecyclerView.setHasFixedSize(true); | |
personasRecyclerView.setLayoutManager(new LinearLayoutManager(this)); | |
personasAdapter = new PersonasAdapter(this); | |
personasRecyclerView.setAdapter(personasAdapter); | |
Persona persona1 = new Persona("Maria", "Libra"); | |
Persona persona2 = new Persona("Juan", "Acuario"); | |
Persona persona3 = new Persona("Pedro", "Cancer"); | |
personasAdapter.add(persona1); | |
personasAdapter.add(persona2); | |
personasAdapter.add(persona3); | |
personasAdapter.add(persona1); | |
personasAdapter.add(persona2); | |
personasAdapter.add(persona3); | |
personasAdapter.add(persona1); | |
personasAdapter.add(persona2); | |
personasAdapter.add(persona3); | |
personasAdapter.add(persona1); | |
personasAdapter.add(persona2); | |
personasAdapter.add(persona3); | |
personasAdapter.add(persona1); | |
personasAdapter.add(persona2); | |
personasAdapter.add(persona3); | |
personasAdapter.add(persona1); | |
personasAdapter.add(persona2); | |
personasAdapter.add(persona3); | |
personasAdapter.add(persona1); | |
personasAdapter.add(persona2); | |
personasAdapter.add(persona3); | |
personasAdapter.add(persona1); | |
personasAdapter.add(persona2); | |
personasAdapter.add(persona3); | |
personasAdapter.add(persona1); | |
personasAdapter.add(persona2); | |
personasAdapter.add(persona3); | |
} | |
@Override | |
public void onItemClick(Persona persona) { | |
Toast.makeText(getApplicationContext(), persona.getNombre() + " " + persona.getSigno(), Toast.LENGTH_SHORT).show(); | |
} | |
@Override | |
public boolean onCreateOptionsMenu(Menu menu) { | |
getMenuInflater().inflate(R.menu.menu_main, menu); | |
return super.onCreateOptionsMenu(menu); | |
} | |
@Override | |
public boolean onOptionsItemSelected(MenuItem item) { | |
return super.onOptionsItemSelected(item); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package tech.alvarez.ejemplorecyclerview.adapters; | |
import tech.alvarez.ejemplorecyclerview.models.Persona; | |
public interface OnItemClickListener { | |
void onItemClick(Persona persona); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package tech.alvarez.ejemplorecyclerview.models; | |
public class Persona { | |
private String nombre; | |
private String signo; | |
public Persona(String nombre, String signo) { | |
this.nombre = nombre; | |
this.signo = signo; | |
} | |
public String getNombre() { | |
return nombre; | |
} | |
public void setNombre(String nombre) { | |
this.nombre = nombre; | |
} | |
public String getSigno() { | |
return signo; | |
} | |
public void setSigno(String signo) { | |
this.signo = signo; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package tech.alvarez.ejemplorecyclerview.adapters; | |
import android.support.v7.widget.RecyclerView; | |
import android.view.LayoutInflater; | |
import android.view.View; | |
import android.view.ViewGroup; | |
import android.widget.TextView; | |
import java.util.ArrayList; | |
import tech.alvarez.ejemplorecyclerview.R; | |
import tech.alvarez.ejemplorecyclerview.models.Persona; | |
public class PersonasAdapter extends RecyclerView.Adapter<PersonasAdapter.ViewHolder> { | |
private ArrayList<Persona> dataset; | |
private OnItemClickListener onItemClickListener; | |
public PersonasAdapter(OnItemClickListener onItemClickListener) { | |
dataset = new ArrayList<>(); | |
this.onItemClickListener = onItemClickListener; | |
} | |
@Override | |
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { | |
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_persona, parent, false); | |
return new ViewHolder(view); | |
} | |
@Override | |
public void onBindViewHolder(ViewHolder holder, int position) { | |
Persona persona = dataset.get(position); | |
holder.nombreTextView.setText(persona.getNombre()); | |
holder.signoTextView.setText(persona.getSigno()); | |
holder.setOnItemClickListener(persona, onItemClickListener); | |
} | |
@Override | |
public int getItemCount() { | |
return dataset.size(); | |
} | |
public static class ViewHolder extends RecyclerView.ViewHolder { | |
TextView nombreTextView; | |
TextView signoTextView; | |
public ViewHolder(View itemView) { | |
super(itemView); | |
nombreTextView = (TextView) itemView.findViewById(R.id.nombreTextView); | |
signoTextView = (TextView) itemView.findViewById(R.id.signoTextView); | |
} | |
public void setOnItemClickListener(final Persona persona, final OnItemClickListener onItemClickListener) { | |
itemView.setOnClickListener(new View.OnClickListener() { | |
@Override | |
public void onClick(View v) { | |
onItemClickListener.onItemClick(persona); | |
} | |
}); | |
} | |
} | |
public void add(Persona persona) { | |
dataset.add(persona); | |
notifyDataSetChanged(); | |
} | |
public void clear() { | |
dataset.clear(); | |
notifyDataSetChanged(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment