有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在片段中使用listView?

我试图在Fragment中使用listview,但当我按下所选行时,它不起作用

// 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;
}

此外,我还制作了一个适配器来连接listView和array 这是TeamAdapter。爪哇

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;
}

共 (0) 个答案