Hola a todos, estoy mirandome los ListView algo mas currados (no los de Strings) pero me esta dando.
El xml que definira como se ve cada item
spoiler
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<ImageView
android:id="@+id/contact_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:contentDescription="Hardcoded"
android:longClickable="true"
android:src="@drawable/leona" />
<LinearLayout
android:id="@+id/row"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical"
android:padding="8dp" >
<TextView
android:id="@+id/contact_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:text="Guillermo Rodriguez"
android:textSize="18sp"
android:textStyle="bold" />
<HorizontalScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="2dp" >
<TextView
android:id="@+id/contact_profesion"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/contact_name"
android:layout_marginTop="8dp"
android:text="Ingeniero Informatico en Sihogar"
android:textSize="15sp"
android:textStyle="italic" />
</HorizontalScrollView>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<ImageButton
android:id="@+id/b_call"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_action_call" />
<ImageButton
android:id="@+id/b_delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_action_remove" />
</LinearLayout>
</LinearLayout>
El archivo activity_main.xml
spoiler
<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=".MainActivity" >
<ListView
android:id="@+id/leagueoflegendsList"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
</ListView>
</RelativeLayout>
Adapter
spoiler
package com.driverlandia.listview;
import java.util.List;
import android.app.Activity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class AdapterContactos extends ArrayAdapter<Persona> {
private Activity context;
private List<Persona> contactos;
public AdapterContactos(Activity context, List<Persona> contactos) {
super(context, R.layout.activity_main, contactos);
this.contactos = contactos;
this.context = context;
}
@Override
public View getView(int pos, View vista, ViewGroup parent) {
View row = vista;
if (row == null) {
LayoutInflater inflater = context.getLayoutInflater();
row = inflater.inflate(R.layout.activity_contact, null);
}
row.setTag(pos);
TextView nombre = (TextView) row.findViewById(R.id.contact_name);
TextView profesion = (TextView) row
.findViewById(R.id.contact_profesion);
ImageView foto = (ImageView) row.findViewById(R.id.contact_image);
if (contactos.get(pos) != null) {
nombre.setText(contactos.get(pos).getNombre());
profesion.setText(contactos.get(pos).getProfession());
foto.setImageResource(contactos.get(pos).getImg());
}
return row;
}
public int getCount() {
return this.contactos.size();
}
}
MainActivity.java
spoiler
package com.driverlandia.listview;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Persona[] lista = new Persona[] {
new Persona("Leona","Stuns Everywhere",18,R.drawable.leona),
new Persona("Jinx","See what PowPow thinks",18,R.drawable.jinx),
new Persona("Teemo","Lord of Terror and Destruction",14,R.drawable.teemo)
};
ListView listview = (ListView) findViewById(R.id.leagueoflegendsList);
ArrayAdapter<Persona> adapter = ArrayAdapter.createFromResource(getApplicationContext(), lista , R.id.leagueoflegendsList);
listview.setAdapter(adapter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
Me encuentro que en el MainActivity me da error en el ArrayAdapter.createFromResource. Llevo varios dias con ello y seguro que es una tonteria pero estoy ya que mato XD