【问题标题】:Android ListView Adapter performanceAndroid ListView 适配器性能
【发布时间】:2015-11-26 09:44:00
【问题描述】:

在我的应用程序中,我有一个 ListActivity。在此活动中,我需要显示操作列表(例如,Action1、Action2、Action3、Action4)。在调用此 listActivity 的意图中,我传递布尔值(标志)。如果标志为真,我需要显示所有动作。否则我只需要显示 Action1 和 Action2。 我看到了两种方法: 1)在资源文件中创建两个字符串数组(称为actions_1和actions_2),并为我的ListActivity覆盖onStart()方法,如下所示:

String[] action_list;
@Override
protected void onStart() {
    super.onStart();    
    Intent intent = getIntent();
    boolean flag = intent.getBooleanExtra("isPayable", false);
    if (flag)
        action_list = getResources().getStringArray(R.array.actions_1);
    else
        action_list = getResources().getStringArray(R.array.actions_2);
    mAdapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, action_list);
    setListAdapter(mAdapter);
}   

2) 为我的 ListView 创建自定义适配器,并在 getView() 方法中隐藏项目设置 layout_height=0dp。 什么方式对性能更好?也许,还有另一种更好的方法?

【问题讨论】:

    标签: android performance listview adapter


    【解决方案1】:

    我认为您不会注意到普通应用程序中的“性能改进”,除非您显示数千个项目的列表(正如您所说,您只会有 4 个?)。在任何情况下,我都会使用选项 1),因为您只检查一次标志,与“N”相比,如果您将逻辑放在需要检查永远不会显示的项目的自定义适配器中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-16
      • 2020-06-25
      • 2011-05-26
      相关资源
      最近更新 更多