0

我有一个调用 simple_list_item_1 的列表,现在我想自定义此单元格以包含图像,但调用它时遇到问题

这是工作代码:

@Override
    public void onCreate(Bundle savedInstanceState) {   //mira el life cycle, aqui y el de createView!
        super.onCreate(savedInstanceState);


        // la manera con sencillo
         ListAdapter myListAdapter = new ArrayAdapter<String>(getActivity(),
                android.R.layout.simple_list_item_1, title); //using Android own simple 

        setListAdapter(myListAdapter);


    }

但现在,我需要打电话给克隆人simple_list_item_1

已经在我的布局文件夹中,克隆的名称是 simple_list_item.xml

那么如何调用我的克隆列表项?

多谢!

4

2 回答 2

1

更改android.R.layout.simple_list_item_1R.layout.simple_list_item_1

于 2012-07-20T06:41:52.280 回答
1

您应该创建从 ArrayAdapter 扩展的类并膨胀您的项目并在之后填充它。如果您需要,我可以给出一些代码示例。

升级版:

例如像这样:

public class MyAdapter extends ArrayAdapter<Object> {

    public MyAdapter(Context context, int textViewResourceId,
            List<Object> objects) {
        super(context, textViewResourceId, objects);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater infalter = (LayoutInflater) getContext()
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View v = infalter.inflate(YOUR_LAYOUT_ITEM, parent, false);
        //v.findViewById(ID_YOUR_IMAGE_VIEW).setDrawable.... and so on...

        return v;
    }

它是最简单的代码。在实际项目中,您应该使用一些技巧来获得像持有者和使用 convertView 这样的性能。

当然,您应该像这样更改 Activity 中的代码:

ListView listView;   
ArrayList<Object> objects;

@Override
    public void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);

        objects = new ArrayList<Object>();
        listView = findViewById(ID_LISTVIEW_IN_ACTIVITY);
        MyAdapter myListAdapter = new MyAdapter<Object>(getActivity(),
                YOUR_LAYOUT_ITEM, objects);

        listView.setAdapter(myListAdapter);
    }

祝你好运!

于 2012-07-20T06:42:21.820 回答