Android : Initial call to setItemChecked in Fragment list not working

on Wednesday, August 6, 2014


I am attempting to select an item within a list Fragment onCreateView. I do this as follows: listView.setItemChecked(position, true);. Unfortunately the view is not activated, as in my ArrayAdapter getView is never called so I am unable to modify the checked item. Any suggestions or links are appreciated!


Fragment onCreateView:



@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {

View layout= inflater.inflate(
R.layout.fragment, container, false);

mListView= (ListView) layout.findViewById(R.id.navigation_list);


mListView.setAdapter(new Adapter(
this,
R.layout.list_item,
titles));
mListView.setItemChecked(mCurrentSelectedPosition, true);

return layout;
}


ArrayAdapter



public class Adapter extends ArrayAdapter<String> {

private Activity mActivity;
private int mResource;

public Adapter(Fragment fragment, int resource, ArrayList<String> titles) {
super(fragment.getActivity(), resource, titles);
mActivity = fragment.getActivity();
mResource = resource;
}

@Override
public View getView(int position, View convertView, ViewGroup parent){
ViewHolder holder;

if(convertView == null){
convertView = mActivity.getLayoutInflater().inflate(mResource, parent, false);

holder = new ViewHolder();
holder.title = (TextView)convertView.findViewById(R.id.title);

convertView.setTag(holder);
}
else{
holder = (ViewHolder)convertView.getTag();
}

holder.title.setText(getItem(position));
holder.title.setTypeface(null, convertView.isActivated() ? Typeface.BOLD : Typeface.NORMAL);

return convertView;
}

private class ViewHolder{
private TextView title;
}
}

0 comments:

Post a Comment