Попытка написать свой первый ArrayAdapter для Android, на данный момент безуспешна. Он аварийно завершает работу в строке setAdapter (adapter);
и вызывает исключение NullPointerException.
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;
}
}
Contract:
public class Contract extends ContractTestActivity {
private String name;
private float payRate;
private int hoursWorked;
private int holidays;
public Contract() {
}
public String getName() {
return name;
}
}
Предложения?