问:我对我们在这里所做的事情感到有些困惑:
私有 静态 类 ViewHolder {
ImageView iconImageView ; TextView temperatureLabel ; TextView dayLabel ; }
我们在这里创建了一个静态类,然后看下面这一行holder = new ViewHolder();:
if (convertView == null ) {
//全新的convertView = LayoutInflater 。来自(mContext )。膨胀(ř 。布局。daily_list_item ,空); 持有人=新的ViewHolder (); 持有人。iconImageView = (ImageView )convertView 。findViewById (ř 。ID 。iconImageView ); 持有者
。temperatureLabel = (TextView ) convertView 。findViewById (ř 。ID 。temperatureLabel );
持有人。dayLabel = (TextView )convertView 。findViewById (ř 。ID 。dayNameLabel ); convertView 。setTag (holder ); } else { holder = (ViewHolder )convertView 。
getTag ();
}
我认为使事物静态化的全部目的是,因此我们不必创建对象,而可以直接访问其属性。Ben说我们必须使用static,但是我不确定为什么。
答:如果希望内部嵌套类可以访问外部类(引用静态类的类)中的静态变量,则可以将其声明为静态类
您是正确的,如果我们确实只想要一个对象,并且不想连续实例化该对象,则使用static。但是,在设计此类时,我会假设无论是谁设计的,都实例化一个视图持有者变量并不断覆盖它(由于它是静态的,因此在创建时将被下一个属性的覆盖)。
我必须假设外部类中有一些静态变量,Ben通过设计选择希望该私有类能够单独访问。