Ciao a tutti,
Lavorando ad un progetto mobile su Android Studio, sono bloccato da questa mattina con questo problema: l'applicazione mi crasha e il problema(debuggando) sembra essere il settaggio dell'adattatore nella variabile...
Vi allego il codice per provare a capirci qualcosa in più:
MainActivity.java
codice:
package com.example.punta.myapplication;
import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.util.List;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ListaKontatti utenti = new ListaKontatti();
Adattatore myAdapter = new Adattatore(this, android.R.layout.list_content, utenti);
ListView lista = (ListView)findViewById(R.id.lista);
lista.setAdapter(myAdapter);
lista.setOnItemClickListener(
new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Utente u = utenti.get(i);
Log.d("aaa Prova", u.getNome() + ": " + u.getKilometri() + " km\nUltimo accesso : " + u.getGiorni());
}
}
);
}
}
Adattatore.java
codice:
package com.example.punta.myapplication;
import android.content.Context;
import android.support.annotation.IdRes;
import android.support.annotation.LayoutRes;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import java.util.List;
public class Adattatore extends ArrayAdapter<Utente> {
public Adattatore(@NonNull Context context, @LayoutRes int resource) {
super(context, resource);
}
public Adattatore(@NonNull Context context, @LayoutRes int resource, @IdRes int textViewResourceId) {
super(context, resource, textViewResourceId);
}
public Adattatore(@NonNull Context context, @LayoutRes int resource, @NonNull Utente[] objects) {
super(context, resource, objects);
}
public Adattatore(@NonNull Context context, @LayoutRes int resource, @IdRes int textViewResourceId, @NonNull Utente[] objects) {
super(context, resource, textViewResourceId, objects);
}
public Adattatore(@NonNull Context context, @LayoutRes int resource, @NonNull List<Utente> objects) {
super(context, resource, objects);
}
public Adattatore(@NonNull Context context, @LayoutRes int resource, @IdRes int textViewResourceId, @NonNull List<Utente> objects) {
super(context, resource, textViewResourceId, objects);
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi;
vi = LayoutInflater.from(getContext());
v = vi.inflate(R.layout.cella_lista, null);
}
Utente p = getItem(position);
if (p != null) {
TextView tt1 = (TextView) v.findViewById(R.id.nome);
TextView tt2 = (TextView) v.findViewById(R.id.kilometri);
TextView tt3 = (TextView) v.findViewById(R.id.giorni);
tt1.setText(p.getNome());
tt2.setText(String.valueOf(p.getKilometri()));
tt3.setText(p.getGiorni());
}
return v;
}
}
Activity_main.xml
codice:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/lista" />
</android.support.constraint.ConstraintLayout>
Cella_lista.xml
codice:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="32sp"
android:id="@+id/nome"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="50sp"
android:id="@+id/kilometri"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="50sp"
android:id="@+id/giorni"/>
</LinearLayout>
Grazie in anticipo