【问题标题】:Android Own Array AdapterAndroid 自己的阵列适配器
【发布时间】:2012-02-28 14:39:46
【问题描述】:

对不起我的英语。我有自己的ArrayAdapter 用于列表活动。我的问题:当我将数据带到网络服务时,数据被添加ArrayList。这里一切正常。 Nexus 和 Android OS 4.0 列出数据,但其他手机和 2.3.3 不列出数据。一切正常,我没有收到任何错误。

我不知道有什么问题。 Nexus(OS 4.0) 中的程序列表数据,但未在 2.3.3 中列出。

  • 我的主要活动类是扩展 ListActivity
    • 公共静态数组列表频率;静态 MobileArrayAdapter 频率;
    • freqzo=new ArrayList(); freqz=new MobileArrayAdapter(this,freqzo);
    • this.setListAdapter(freqz); ListView lv = getListView();
    • lv.setTextFilterEnabled(true); //还有我填充的arraylist部分:if (store
    • instanceof Vector) { Object[] arr = ((Vector) store).toArray();对于
    • (int i = 0; i

我的移动适配器类:

public class MobileArrayAdapter extends ArrayAdapter<String> {

    private final Context context;
    private final ArrayList<String> values;

    public MobileArrayAdapter(Context context, ArrayList<String> values) {
        super(context, R.layout.listlayout, values);
        this.context = context;
        this.values = values;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = (LayoutInflater) context
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        View rowView = inflater.inflate(R.layout.listlayout, parent, false);
        TextView textView = (TextView) rowView.findViewById(R.id.label);
        ImageView imageView = (ImageView) rowView.findViewById(R.id.logo);

        String s = values.get(position);
        Log.d("Liste", "Liste " + values.get(position));
        if (s != null && !s.equals("")) {
            textView.setText(s);
        }

        // Change icon based on name
        // String s = values[position];

        return rowView;
    }
}

【问题讨论】:

    标签: android android-listview


    【解决方案1】:

    也许在填写完您的清单后,您应该致电adapter.notifyDataSetChanged()

    【讨论】:

      【解决方案2】:

      那段不好:

          LayoutInflater inflater = (LayoutInflater) context
              .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
      
          View rowView = inflater.inflate(R.layout.listlayout, parent, false);
      

      首先,您不使用适配器为您创建的视图,而是始终创建一个新视图。 Java 机器会清理过多的对象,但这需要大量时间。其次,ArrayAdapter 可以完成所有工作。看here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多