I know that most of my code might be OK, but I can just add 1 item to the listview. When I try to add more items, pressing the button, nothing happens. The app keeps ok, but doing nothing. I've tried many things and nothing is working.
I'm leaving here some code:
Adapter
public class ConfigSubjectListAdapter extends BaseAdapter {
private ArrayList<ConfigSubjectListItem> configSubjectItems;
LayoutInflater inflater;
public ConfigSubjectListAdapter (Context context, ArrayList<ConfigSubjectListItem> _configSubjectItems){
this.configSubjectItems = _configSubjectItems;
inflater = (LayoutInflater)
context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return configSubjectItems.size();
}
@Override
public Object getItem(int position) {
return configSubjectItems.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Log.d("ConfigSubjectListAdapter: ", "0");
final ViewHolderItem viewHolder;
if (convertView == null) {
Log.d("ConfigSubjectListAdapter: ", "1");
viewHolder = new ViewHolderItem();
convertView = inflater.inflate(R.layout.profile_configure_subjects_listitem, null);
viewHolder.llItem = (LinearLayout) convertView.findViewById(R.id.profile_config_itemlayout);
viewHolder.rlOptions = (RelativeLayout) convertView.findViewById(R.id.profile_config_rlOptionsLayout);
viewHolder.textViewNameItem = (TextView) convertView.findViewById(R.id.profile_config_listName);
viewHolder.textViewCodeItem = (TextView) convertView.findViewById(R.id.profile_config_listCode);
viewHolder.textViewGroupItem = (TextView) convertView.findViewById(R.id.profile_config_listGroup);
viewHolder.EditViewItem = (View) convertView.findViewById(R.id.profile_config_colorSubject);
viewHolder.UpperViewItem = (View) convertView.findViewById(R.id.profile_config_listColored);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolderItem)convertView.getTag();
}
viewHolder.textViewNameItem.setText(configSubjectItems.get(position).getName());
viewHolder.textViewCodeItem.setText(configSubjectItems.get(position).getCode());
viewHolder.textViewGroupItem.setText(configSubjectItems.get(position).getGroup());
viewHolder.EditViewItem.setBackgroundColor(configSubjectItems.get(position).getColor());
viewHolder.UpperViewItem.setBackgroundColor(configSubjectItems.get(position).getColor());
return convertView;
}
static class ViewHolderItem {
LinearLayout llItem;
RelativeLayout rlOptions;
TextView textViewNameItem;
TextView textViewCodeItem;
TextView textViewGroupItem;
View UpperViewItem;
View EditViewItem;
}
}
Activity where listview is:
public class ConfigureSubjects extends Activity {
View colorSelector;
ImageView addSubjectBtn;
private ArrayList<ConfigSubjectListItem> confSubItems;
private ConfigSubjectListAdapter adapter;
DatabaseHandler db;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.profile_configure_subjects);
final ListView cSubjectList = (ListView) findViewById(R.id.profile_config_listViewSubject);
confSubItems = new ArrayList<ConfigSubjectListItem>();
adapter = new ConfigSubjectListAdapter(getApplicationContext(),
confSubItems);
cSubjectList.setAdapter(adapter);
db = new DatabaseHandler(getApplicationContext());
final TextView _code = (TextView)findViewById(R.id.profile_config_codeSubject);
final TextView _ects = (TextView)findViewById(R.id.profile_config_ectsSubject);
addSubjectBtn = (ImageView)findViewById(R.id.profile_config_addButtonSubject);
addSubjectBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String _asig = searchSubject.getText().toString();
String _codigo = (String) _code.getText();
confSubItems.add(new ConfigSubjectListItem(_asig, _codigo,"M2",Integer.valueOf((String) colorSelector.getTag())));
Log.d("addSubjectBtn: ","1");
adapter.notifyDataSetChanged();
Log.d("addSubjectBtn: ","2");
}
});
}
}
I finally found the problem. Nothing to do with code, it was a layout xml problem when declaring my ListView.
Thanks for the answers!