Проблема в том, что вы не инициализируете свой ArrayList
private ArrayList<Contract> contracts;
Поэтому вы получаете сообщение об ошибке NullPointerException.
UPADATED:
ContractTestActivity.java
public class ContractTestActivity extends Activity {
private List<Contract> contracts = new ArrayList<Contract>();
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.mylist);
ArrayAdapter<Contract> adapter = new ContractAdapter(this, android.R.layout.simple_list_item_1, myContracts());
list.setAdapter(adapter);
}
private List<Contract> myContracts(){
List<Contract> list = new ArrayList<Contract>();
list.add(new Contract("Friend1"));
list.add(new Contract("Friend2"));
list.add(new Contract("Friend3"));
list.add(new Contract("Friend4"));
return list;
}
}
Contract.java
public class Contract {
private String name;
public Contract(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
ContractAdapter.java
public class ContractAdapter extends ArrayAdapter<Contract> {
private List<Contract> contracts;
public ContractAdapter(Context context, int view, List<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;
}
}