I am trying to use listview in Fragment but it does not work when I press the selected row.
// Group1ListViewFragment.java
private ListView listview1;
public Group1ListViewFragment(){}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.group1_list_view_fragment, container, false);
Team[] team_data = new Team[]
{
new Team(R.drawable.ic_launcher, "Arsenal"),
new Team(R.drawable.ic_launcher, "Chelsea"),
new Team(R.drawable.ic_launcher, "Everton"),
new Team(R.drawable.ic_launcher, "Liverpool"),
new Team(R.drawable.ic_launcher, "Manchester United")
};
ListView listview1 = (ListView)rootView.findViewById(R.id.listView1);
// Using the adapter to connect between item view and the photo array
listview1.setAdapter(new TeamAdapter(getActivity(), 0, team_data));
return rootView;
}
Also, i make a adapter to connect listView and array This is TeamAdapter.java
public TeamAdapter(Context context, int layoutResourceId, Team[] data) {
super(context, layoutResourceId, data);
this.layoutResourceId = layoutResourceId;
this.context = context;
this.data = data;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
TeamHolder holder = null;
if (row == null) {
// LayoutInflater inflater = ((Activity) context).getLayoutInflater();
// Ref: http://stackoverflow.com/questions/7803771/call-to-getlayoutinflater-in-places-not-in-activity
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
row = inflater.inflate(layoutResourceId, parent, false);
holder = new TeamHolder();
holder.imgIcon = (ImageView) row.findViewById(R.id.imgIcon);
holder.txtTitle = (TextView) row.findViewById(R.id.txtTitle);
row.setTag(holder);
} else {
holder = (TeamHolder) row.getTag();
}
Team team = data[position];
holder.txtTitle.setText(team.title);
holder.imgIcon.setImageResource(team.icon);
return row;
}
static class TeamHolder {
ImageView imgIcon;
TextView txtTitle;
}