我有活动“VerSolicitudesPendientesActivity.java”,当我选择一个主菜单项时加载。 此活动包含一个listview,它不显示列表,但是是TextView。 这是活动:
public class VerSolicitudesPendientesActivity extends Activity {
/* (non-Javadoc)
* @see android.app.Activity#onCreate(android.os.Bundle)
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.lista_solicitudes);
System.out.println("OncreateSolicitudes");
System.out.println("Contenido enlazado: Solicitudes.");
Bundle bundle= getIntent().getExtras();
System.out.println("Extras obtenidos");
String usuario= bundle.getString("usuario");
System.out.println("Usuario que revisa solicitudes: "+ usuario);
cargaSolicitudes(usuario);
System.out.println("Accediendo a solicitudes");
}
public void cargaSolicitudes(String usuario){
System.out.println("Llegamos a carga solicitudes.");
ListView lista= (ListView) findViewById(R.id.listaSolicitudes);
//System.out.println("Lista obtenida del xml.");
ArrayList<Solicitante> arraySolicitudes= new ArrayList<Solicitante>();
Solicitante solicitante;
//System.out.println("Antes de cargar solicitudes (Solicitantes)");
//Introduccion de datos en el array. Aqui es donde se deben cargar los datos de la BB.DD
solicitante= new Solicitante("Pablo","zz@zz",getResources().getDrawable(R.drawable.fotoamigo));
arraySolicitudes.add(solicitante);
//System.out.println("Solicitante 1 cargado "+ solicitante.nombreSolicitante);
solicitante= new Solicitante("Jon","zz@yy",getResources().getDrawable(R.drawable.fotoamigo2));
arraySolicitudes.add(solicitante);
//System.out.println("Solicitante 2 cargado "+ solicitante.nombreSolicitante);
System.out.println("Solicitudes cargadas en adapter");
// Creamos el adapter
SolicitudesAdapter adapter= new SolicitudesAdapter(this,arraySolicitudes,getBaseContext());
// Una vez hecha la conexión pasamos los datos.
lista.setAdapter(adapter);
}
public void aceptaSolicitud(View v){
Solicitante solicitante= (Solicitante) v.getTag();
Toast.makeText(getBaseContext(), "Solicitud de "+solicitante+" ha sido aceptada.", Toast.LENGTH_SHORT).show();
}
public void rechazaSolicitud(View v){
Solicitante solicitante= (Solicitante) v.getTag();
Toast.makeText(getBaseContext(), "Solicitud de "+solicitante+" ha sido rechazada.", Toast.LENGTH_SHORT).show();
}
}
这是我的自定义适配器:
public class SolicitudesAdapter extends BaseAdapter {
protected Activity activity;
protected ArrayList<Solicitante> solicitantes;
protected Context mContext;
public SolicitudesAdapter(Activity activity, ArrayList<Solicitante> solicitantes,Context context){
this.activity= activity;
this.solicitantes= solicitantes;
this.mContext=context;
}
public Context getmContext() {
return mContext;
}
public void setmContext(Context mContext) {
this.mContext = mContext;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return 0;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@SuppressLint({ "ViewHolder", "InflateParams" })
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inf=(LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v= inf.inflate(R.layout.lista_solicitudes,null);
//Asociar el layout de la lista que hemos creado.
//Definimos un objeto a partir del array, vamos a cargar el contenido
//de ese objeto en el view de la lista.
System.out.println("Dentro del adapter");
Solicitante soli= solicitantes.get(position);
//Cargamos la fotografía del amigo.
ImageView foto= (ImageView)v.findViewById(R.id.imagenSolicitud);
foto.setImageDrawable(soli.getFoto());
System.out.println("Imagen botonAmigo cargada en la view");
//Cargamos el nombre del evento
TextView nombre= (TextView)v.findViewById(R.id.textoSolicitud);
String cadena =soli.getNombreSolicitante()+" quiere ser tu amigo.";
nombre.setText(cadena);
Button botonAcepta= (Button)v.findViewById(R.id.botonAceptaSolicitud);
botonAcepta.setTag(soli);
Button botonRechaza= (Button)v.findViewById(R.id.botonRechazaSolicitud);
botonRechaza.setTag(soli);
System.out.println("Hemos adaptado a "+ soli.nombreSolicitante);
return v;
}
这是xml包含活动中show的listview和textview:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/pruebaTexto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Prueba de que se carga el contenido de la actividad." />
<ListView
android:id="@+id/listaSolicitudes"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"
tools:listitem="@layout/solicitudlist" >
</ListView>
在这个xml文件的图形模式下,我可以在TextView下面正确地看到列表。 最后,这是列表中的项目。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/borde_naranja" >
<TextView
android:id="@+id/textoSolicitud"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginRight="16dp"
android:layout_marginTop="15dp"
android:text="@string/fraseSolicitud" />
<ImageView
android:id="@+id/imagenSolicitud"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_alignParentLeft="true"
android:layout_alignTop="@+id/textoSolicitud"
android:layout_marginLeft="15dp"
android:src="@drawable/fotoamigo" />
<Button
android:id="@+id/botonAceptaSolicitud"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textoSolicitud"
android:layout_centerHorizontal="true"
android:background="@drawable/borde_rellenonaranja"
android:onClick="aceptaSolicitud"
android:text="@string/aceptar"
android:textSize="12sp" />
<Button
android:id="@+id/botonRechazaSolicitud"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/botonAceptaSolicitud"
android:layout_alignBottom="@+id/botonAceptaSolicitud"
android:layout_alignRight="@+id/textoSolicitud"
android:layout_marginRight="16dp"
android:background="@drawable/borde_rellenonaranja"
android:onClick="rechazaSolicitud"
android:text="@string/rechazar"
android:textSize="12sp" />
我没有任何编译错误。当活动开始时,我可以看到textView但没有listView。该程序重新重新修改,但我不知道哪个可能是问题。我希望在这里找到帮助。非常感谢。
答案 0 :(得分:0)
您在适配器中返回错误的ArrayList
计数。此计数用于呈现视图。
在适配器中更改此
@Override
public int getCount() {
// TODO Auto-generated method stub
return solicitantes.size();
}