3

我是安卓新手。我想创建一个可扩展的 ListView,其中 1 行具有必须在 manin 线程中指定的自定义信息,而不是在布局中硬编码。

我想在其中有一个图像和 2 个文本视图。我想我需要一个自定义布局文件,但我不确定在我的代码中在哪里调用它。请协助。

接下来是我的自定义适配器中的 GropView fxn。我希望案例 0 加载自定义布局文件

public View getGroupView(int groupPosition, boolean arg1, View convertView,
        ViewGroup arg3) {

    String laptopName = (String) getGroup(groupPosition);
    if (convertView == null) {
        LayoutInflater infalInflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = infalInflater.inflate(R.layout.group_item, null);
    }
    TextView item = (TextView) convertView.findViewById(R.id.laptop);
    item.setTypeface(null, Typeface.BOLD);
    item.setText(laptopName);

    this.context = (Activity) context;
    switch (groupPosition) {
    case 0:
        convertView.setBackgroundColor(this.context.getResources()
                .getColor(R.color.dark_blue));
        convertView.inflate(R.layout.first_row_layout, 0, arg3);
        break;
    case 1:
        convertView.setBackgroundColor(this.context.getResources()
                .getColor(R.color.purple));
        break;
    case 2:
        convertView.setBackgroundColor(this.context.getResources()
                .getColor(R.color.green));
        break;
    default:
        break;
    }

    return convertView;
}
4

1 回答 1

1

您在代码中定义组项目布局的位置是这样的:

 if (convertView == null) {
        LayoutInflater infalInflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = infalInflater.inflate(R.layout.group_item, null);
    }

在您的情况下,您正在为您的组项目使用布局 R.layout.group_item 。如果要为每个组位置加载不同的布局,则需要将这部分代码移动到 switch-case 内。您必须小心 ListView 中的图像,更多信息请参见此处:

http://developer.android.com/training/improving-layouts/smooth-scrolling.html

于 2013-08-03T21:19:21.407 回答