2015-11-26 130 views
0

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

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。 什么方式更好的性能?也许,还有另一种更好的方法?

回答

0

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

+0

谢谢你的回答! – user3533397