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

问题描述:

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

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

Android平台所提供超过适配器巫婆适配器要使用? –

+0

它更好地了解每个One One One中的所有适配器! – gowri

+0

你有什么尝试?你遇到了什么问题?更具体一点,这将有助于人们帮助你。 – neevek

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

我还应该添加,因为我在其中的一条评论中看到它,ArrayAdapter基本上是BaseAdapter,但不同之处在于它需要任意对象的数组ak.a最适合于直接使用数组。

+1

谢谢,你能分享我任何这些教程的完美链接? – gowri

+1

没问题。我不能直到我确切知道你需要什么。如果不是的话,我会在研究方面做很多你应该做的工作。 :P – Andy

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

看出来这个样本示例和link

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

你可以得到这个适配器的想法..