Intentando escribir mi primer ArrayAdapter para Android, fallando miserablemente en este momento. Se bloquea en la línea setAdapter(adapter);
y arroja una NullPointerException.Bloqueos de actividad en setAdapter (ArrayAdapter);
ContractTestActivity:
public class ContractTestActivity extends Activity {
private ArrayList<Contract> contracts;
public final String TAG = "ContractTest";
//public Contract newContract = new Contract();
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ListView list;
list = (ListView)findViewById(R.id.list);
ArrayAdapter<Contract> adapter = new ContractAdapter(this, android.R.layout.simple_list_item_1, contracts);
list.setAdapter(adapter);
}
}
ContractAdapter:
public class ContractAdapter extends ArrayAdapter<Contract> {
private ArrayList<Contract> contracts;
public ContractAdapter(Context context, int view, ArrayList<Contract> passedContracts) {
super(context, view, passedContracts);
contracts = passedContracts;
}
@Override
public int getCount() {
return contracts.size();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View currentView = convertView;
LayoutInflater currentViewInflater = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
currentView = currentViewInflater.inflate(android.R.layout.simple_list_item_1, null);
Contract currentContract = contracts.get(position);
TextView text = (TextView) currentView.findViewById(android.R.id.text1);
text.setText(currentContract.getName());
return currentView;
}
}
Contrato:
public class Contract extends ContractTestActivity {
private String name;
private float payRate;
private int hoursWorked;
private int holidays;
public Contract() {
}
public String getName() {
return name;
}
}
Sugerencias?
lo cambió a 'private ArrayList contracts = new ArrayList ();', mismo error. –
Fraser
Debe agregar los datos también a ArrayList y luego pasarlos al adaptador. –
pago y envío mi respuesta actualizada de trabajo completa para usted. –