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_1に変更R.layout.simple_list_item_1

于 2012-07-20T06:41:52.280 に答える
1

ArrayAdapterから拡張されたクラスを作成し、アイテムを膨らませてからデータを入力する必要があります。必要に応じて、コード例をいくつか挙げることができます。

UPD:

たとえば、そのように:

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の使用など、多くのパフォーマンスを実現するためにいくつかのトリックを使用する必要があります。

もちろん、アクティビティのコードを次のように変更する必要があります。

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 に答える