Android列表视图,当前项目计数器

时间:2011-10-17 16:51:13

标签: android android-layout android-listview

在我的Android应用程序中,我有一个listview,它根据用户查询显示动态数据。

问题是我需要在页脚中显示用户当前选择的项目(在滚动列表视图时)。

我已实现OnItemSelectedListener并且可以捕获滚动位置。 我最初定义了一个全局变量并将其赋值为-1。

int selectedRowIndex = -1;

@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,long arg3) {

    selectedRowIndex = arg2;    
    footer.setText(String.valueOf(selectedRowIndex+1)+ " of " + String.valueOf(companyList.size()));
}

问题是,当页面最初加载,甚至还没有选择任何项目(Scroll)时,selectedRowIndex值变为0(列表视图中的第一个项目)。我无法理解为什么会发生这种情况,任何人都可以提出实现这一目标的方法。

非常感谢

编辑

<RelativeLayout android:id="@+id/relativeLayout1" android:layout_height="wrap_content" android:layout_width="match_parent">

             <TextView android:text="TextView" 
                  android:id="@+id/noCompanysFound_Message" 
                  android:layout_width="wrap_content" 
                  android:layout_height="wrap_content"
                  android:visibility="gone"
                  android:textStyle="italic"
                  android:layout_marginTop="10dp">
                  </TextView>

            <ListView android:layout_width="match_parent"    
                      android:layout_height="match_parent" 
                      android:id="@+id/companylistView"
                      android:listSelector="@drawable/item_focus_bkg"
                      android:layout_above="@+id/footer_linearLayout"
                      android:focusable="false">
                      </ListView>                         

             <LinearLayout android:id="@+id/footer_linearLayout" android:layout_height="wrap_content" android:layout_width="match_parent" android:orientation="vertical" android:layout_alignParentBottom="true" android:background="@drawable/bottom_bkg" android:gravity="center_horizontal">         
                <TextView android:text="Footer Text" 
                          android:id="@+id/companylistFooterTextView" 
                          android:layout_width="wrap_content" 
                          android:layout_height="wrap_content" 
                          android:textColor="#FFFFFF">
                          </TextView>       
            </LinearLayout>        


        </RelativeLayout> 

1 个答案:

答案 0 :(得分:1)

我认为,只要您的活动创建了listview get Focusedfirst row will be selected,这就是为什么listview's onItemSelected()肯定会被调用一次而且第一行列表的索引为0所以代码

selectedRowIndex = arg2; became selectedRowIndex = 0;  

如果我错了,请给我建议或告诉我。