繁体   English   中英

在Android上使用适配器的最佳方法是什么?

[英]What's the best way to use Adapters on Android?

在Android上使用适配器的最佳方法是什么? 我们可以将它用于多个定制操作。 通过使用适配器,我们将包括一些预先实现的方法。 我什么时候应该使用这些方法? 我们如何通过使用Adapter实现的方法来提高应用程序的性能?

public int getCount() {
        // TODO Auto-generated method stub
        return country.length;
    }

    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return position;
    }

    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return position;
    }
}

看看这个示例和链接

public class GridDemo extends Activity implements AdapterView.OnItemClickListener {
    private TextView selection;
    private static final String[] items={"lorem", "ipsum", "dolor", "sit", "amet", "consectetuer", "adipiscing", "elit", "morbi", "vel", "ligula", "vitae", "arcu", "aliquet", "mollis", "etiam", "vel", "erat", "placerat", "ante", "porttitor", "sodales", "pellentesque", "augue", "purus"};

    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.main);
        selection=(TextView)findViewById(R.id.selection);
        GridView g=(GridView) findViewById(R.id.grid);
        g.setAdapter(new ArrayAdapter<String>(this, R.layout.cell, items));
        g.setOnItemClickListener(this);
    }

    public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
        selection.setText(items[position]);
    }
}

你可以知道这个适配器..

BaseAdapter是简单使用ListViewGridView的绝佳选择。 但是如果你想从数据库中获取数据,那么CursorAdapter更适合这种情况,尽管doc说它适用于ListView 因此,如果您希望在显示从数据库获取的数据时同时使用ListViewGridViewSimpleCursorAdapter将是您使用的另一种类型。 但当然知道你的实施会帮助我更好地给你最好的选择。

我也应该添加,因为我在其中一条评论中看到它, ArrayAdapter基本上是一个BaseAdapter ,但区别在于它需要任意对象的数组,最适合直接开箱即用的数组。

getCount()是必须的。 它告诉ListView,GridView等要显示多少项。 getItem()和getItemId()在很多情况下(如果你自己的代码实现getView())实际上是可选的,它们只是辅助方法。 有适配器的基本方法,它对性能改进没有帮助。 我认为getView()的实现效果性能最强。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM