I have a listview that should print 13 fields, the problem I have, is that 7 are different and the other 6 are repeated, then I leave the code I use:
Class Laws:
public class Leyes extends Activity implements AdapterView.OnItemClickListener {
String[] member_names;
TypedArray profile_pics;
String[] statues;
List<RowItem> rowItems;
ListView mylistview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_leyes);
rowItems = new ArrayList<RowItem>();
member_names = getResources().getStringArray(R.array.titulosley);
profile_pics = getResources().obtainTypedArray(R.array.fotosley);
statues = getResources().getStringArray(R.array.descripcionley);
for (int i = 0; i < member_names.length; i++) {
RowItem item = new RowItem(member_names[i],
profile_pics.getResourceId(i, -1), statues[i]);
rowItems.add(item);
}
mylistview = (ListView) findViewById(R.id.listviewLeyes);
CustomAdapter adapter = new CustomAdapter(this, rowItems);
mylistview.setAdapter(adapter);
Log.d("tamaño",String.valueOf(rowItems.size()));
mylistview.setOnItemClickListener(this);
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
String member_name = rowItems.get(position).getMember_name();
Toast.makeText(getApplicationContext(), "" + member_name,
Toast.LENGTH_SHORT).show();
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}
}
RowItem class:
public class RowItem {
private String member_name;
private int profile_pic_id;
private String status;
public RowItem(String member_name, int profile_pic_id, String status) {
this.member_name = member_name;
this.profile_pic_id = profile_pic_id;
this.status = status;
}
public String getMember_name() {
return member_name;
}
public void setMember_name(String member_name) {
this.member_name = member_name;
}
public int getProfile_pic_id() {
return profile_pic_id;
}
public void setProfile_pic_id(int profile_pic_id) {
this.profile_pic_id = profile_pic_id;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}
CustomAdapter class ():
public class CustomAdapter extends BaseAdapter {
Context context;
List<RowItem> rowItems;
CustomAdapter(Context context, List<RowItem> rowItems) {
this.context = context;
this.rowItems = rowItems;
}
@Override
public int getCount() {
return rowItems.size();
}
@Override
public Object getItem(int position) {
return rowItems.get(position);
}
@Override
public long getItemId(int position) {
return rowItems.indexOf(getItem(position));
}
/* private view holder class */
private class ViewHolder {
ImageView profile_pic;
TextView member_name;
TextView status;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
LayoutInflater mInflater = (LayoutInflater) context
.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
convertView = mInflater.inflate(R.layout.listviewformato, null);
holder = new ViewHolder();
holder.member_name = (TextView) convertView
.findViewById(R.id.tituloley);
holder.profile_pic = (ImageView) convertView
.findViewById(R.id.fotoley);
holder.status = (TextView) convertView.findViewById(R.id.descripcionley);
RowItem row_pos = rowItems.get(position);
holder.profile_pic.setImageResource(row_pos.getProfile_pic_id());
holder.member_name.setText(row_pos.getMember_name());
holder.status.setText(row_pos.getStatus());
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
return convertView;
}
}
in the class for laws, I think this is the problem because if I change the -1 to 1 it shows me the missing ones, but the previous ones disappear
edit:
xml activity laws:
<ListView
android:id="@+id/listviewLeyes"
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:
</ListView>
xml activity list view format
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="2dp">
<ImageView
android:id="@+id/fotoley"
android:layout_width="70dp"
android:layout_height="70dp"
android:contentDescription="desc"
android:paddingLeft="10dp"
android:paddingRight="10dp"/>
<TextView
android:id="@+id/tituloley"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_toRightOf="@+id/fotoley"
android:paddingBottom="10dp"
android:text="txt"
android:textSize="20dp"/>
<TextView
android:id="@+id/descripcionley"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="10dp"
android:text="txt"
android:textSize="16dp"
android:layout_below="@+id/tituloley"
android:layout_toEndOf="@+id/fotoley" />
</RelativeLayout>
I leave the arrays here:
<string-array name="titulosley">
<item>Transitar por pista de la derecha</item>
<item>Transitar según sentido de marcha</item>
<item>Prohibición de circulación</item>
<item>Obligación de circulación.</item>
<item>Prohibida la circulación en autopistas.</item>
<item>Elementos necesarios para circular diariamente.</item>
<item>Requerimiento para la conducción.</item>
<item>Respetar normas y señales de tránsito.</item>
<item>No adherirse a otros vehículos.</item>
<item>Tránsito en grupos</item>
<item>Transporte de carga</item>
<item>Señalizar hacia donde se dirige.</item>
<item>No Utilizar.</item>
</string-array>
<string-array name="descripcionley">
<item>Los ciclistas siempre deben transitar por la calle y por la pista derecha, a un metro de la cuneta.
Solo en caso que la pista derecha sea exclusiva para buses, podrán transitar por la pista izquierda</item>
<item>Al transitar por la calle, siempre lo deberán hacer respetando el sentido de esta, nunca ir contra el tránsito.</item>
<item>Está prohibido circular por las veredas, a menos que los ciclistas sean niños o adultos mayores.</item>
<item>En caso de existir ciclovías o vías exclusivas, es obligatorio transitar por ellas.</item>
<item>Está prohibido circular por las autopistas y/o autovías, a menos que exista una vía o ciclovía donde esté permitida su circulación. Esta regla aplica también en los accesos a las autopistas, autovías y túneles.</item>
<item>Un ciclista siempre deberá portar los siguientes elementos de seguridad:
• Luces delanteras: un foco de luz blanca que permita proyectar luz frontal.
• Luces traseras: una luz roja fija.
• Utilizar un timbre o aparato sonoro que pueda emitir sonidos de intensidad moderada.
• Casco protector, que debe cubrir la parte superior de la cabeza y permanecer fijo a ella mediante una cinta o correa que pase por debajo de la barbilla.
• Un sistema de frenos efectivo.
• Las bicicletas y los ciclistas deberán contar con elementos reflectantes. En el caso de los ciclistas, puede ser un chaleco, bandas o hasta tobilleras.
</item>
<item>No se pueden llevar a más personas del número para cual fue diseñada la bicicleta.</item>
<item>Los ciclistas deben respetar los semáforos destinados exclusivamente para ellos, al igual que los peatones. Los semáforos siguen las mismas reglas básicas que deben seguir los automovilistas.</item>
<item>Está prohibido que los ciclistas se enganchen de otros vehículos que se encuentren en movimiento en las vías públicas.</item>
<item>Si van a transitar en grupo, los ciclistas deberán ir de 2 en 2, ocupando solo la mitad de la calzada. De noche, deberán transitar uno tras otro.</item>
<item>No deben transportar carga que impida mantener ambas manos sobre el manubrio y el debido control de la bicicleta.</item>
<item>Deben señalizar con los brazos las maniobras de viraje, extendiendo los brazos de manera horizontal dependiendo de la dirección hacia donde se dirigen.</item>
<item>No pueden hablar por celular mientras conducen.</item>
</string-array>
<array name="fotosley">
<item>@drawable/uno</item>
<item>@drawable/dos</item>
<item>@drawable/tres</item>
<item>@drawable/cuatro</item>
<item>@drawable/cinco</item>
<item>@drawable/seis</item>
<item>@drawable/siete</item>
<item>@drawable/ocho</item>
<item>@drawable/nueve</item>
<item>@drawable/diez</item>
<item>@drawable/once</item>
<item>@drawable/doce</item>
<item>@drawable/trece</item>
</array>