【问题标题】:Android: instantiate a class extending ArrayAdapterAndroid:实例化一个扩展 ArrayAdapter 的类
【发布时间】:2016-06-19 20:58:34
【问题描述】:

如何在 Android 中实例化 ArrayAdapter 类型的对象

private class LeDeviceListAdapter extends ArrayAdapter<LeScanRecord> 

LeScanRecord 也是一个类。

【问题讨论】:

  • 检查一些自定义列表视图示例。您需要做的就是定义正确的构造函数并用它创建新对象。

标签: android android-layout listview android-studio android-arrayadapter


【解决方案1】:

您可以创建 ArrayAdapter 的对象并将其用作 ListView 适配器:

ArrayAdapter<LeScanRecord> adapter = new ArrayAdapter<LeScanRecord>(this,
          android.R.layout.simple_list_item_1, android.R.id.text1, values);

其中,values 是要在列表视图中显示的LeScanRecord 对象列表。

更多关于ArrayAdapter的使用,可以学习Simple ListView tutorial by AndroidExample.com.

您还可以通过扩展BaseAdapter 来为列表组件(ListView、GridView、Spinner 等)创建自定义适配器,这样更简单直接。

我建议你学习Ravi Tamada, on Android ListViews, published on AndroidHive.info.的另一篇精彩文章

【讨论】:

    【解决方案2】:
       public class LeDeviceListAdapter extends ArrayAdapter<LeScanRecord> {
    
        Context context;
    
        public LeDeviceListAdapter(Context context, int itemResource, List<LeScanRecord> itemList ) {
            super(context, itemResource, itemList);
            this.context = context;
            this.itemResource = itemResource;
        }
    
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            ViewHolder holder;
            if (null == convertView) {
                convertView = newView(parent);
                // your functionality here
             }   
            return 
        }
    
     private View newView(ViewGroup parent) {
            return LayoutInflater.from(context).inflate(itemResource, parent, false);
        }
    }
    

    【讨论】:

    • 谢谢。请给我一个答案。如果你觉得有帮助
    猜你喜欢
    • 2013-05-24
    • 2016-01-07
    • 2013-07-04
    • 1970-01-01
    • 1970-01-01
    • 2021-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多