gpt4 book ai didi

Android gridview 适配器为零位置调用多个 getview()

转载 作者:行者123 更新时间:2023-11-30 03:44:50 24 4
gpt4 key购买 nike

Android gridview 适配器多次调用 getView() 以获取位置零。下面你可以看到我的 xml 代码和日志。谁能告诉我这段代码中有什么错误吗?

<GridView
android:id="@+id/reward_grid"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerInParent="true"
android:background="@color/transparent"
android:horizontalSpacing="@dimen/reward_negative_space_medium"
android:listSelector="@color/Transparent"
android:numColumns="2"
android:scrollbars="none"
android:stretchMode="columnWidth"
android:verticalSpacing="@dimen/reward_negative_space_medium" >
</GridView>

我的适配器代码是@覆盖 public View getView(int position, View convertVieww, ViewGroup parent) {

    if(ShopBitesLog.IS_DEBUG_ENABLED)
Log.d(Tag, "Getview calling for position : "+ position);


if (convertView == null) {

holder = new ViewHolder();

final View convertView = inflator.inflate(R.layout.reward_grid_items, null);

holder.rewardGriditemTopImg = (ImageView)convertView
.findViewById(R.id.reward_grid_top_Img);

holder.rewardGriditemBites = (TextView)convertView
.findViewById(R.id.reward_grid_pointsTxt);

holder.reward_manin_linear = (RelativeLayout)convertView
.findViewById(R.id.reward_manin_linear);

holder.relative_reward_image = (RelativeLayout)convertView.findViewById(R.id.relative_reward_image);

holder.rewardText = (TextView)convertView.findViewById(R.id.rewardText);

holder.reward_first_relative=(RelativeLayout)convertView.findViewById(R.id.reward_first_relative);

holder.reward_second_relative=(RelativeLayout)convertView.findViewById(R.id.reward_second_relative);


convertView.setTag(holder);

} else {

holder = (ViewHolder)convertView.getTag();

}

if (rewardList.get(position).isAnnouncement()) {

holder.reward_second_relative.setVisibility(View.VISIBLE);
holder.reward_first_relative.setVisibility(View.GONE);

// holder.rewardGriditemTopImg.setImageResource(R.drawable.charity);
// holder.rewardText.setVisibility(View.VISIBLE);

holder.rewardText.setText(rewardList.get(position).getRewardText());

// holder.relative_reward_image.setVisibility(View.INVISIBLE);


} else {

holder.reward_first_relative.setVisibility(View.VISIBLE);
holder.reward_second_relative.setVisibility(View.GONE);


// holder.relative_reward_image.setVisibility(View.VISIBLE);

// holder.rewardText.setVisibility(View.INVISIBLE);

holder.rewardGriditemBites.setText(rewardList.get(position).getShop_bites() + " "
+ "bites");
imageBitmapLoader.DisplayImage(rewardList.get(position).getReward_image(), 0,
holder.rewardGriditemTopImg, true);

}
return convertView;
}

我的日志在这里。

03-01 11:06:06.349: D/RewardGridAdapter(827): Getview calling for position : 003-01 11:06:06.381: D/RewardGridAdapter(827): Getview calling for position : 003-01 11:06:06.503: D/RewardGridAdapter(827): Getview calling for position : 003-01 11:06:06.519: D/RewardGridAdapter(827): Getview calling for position : 003-01 11:06:06.519: D/RewardGridAdapter(827): Getview calling for position : 003-01 11:06:06.540: D/RewardGridAdapter(827): Getview calling for position : 003-01 11:06:06.560: D/RewardGridAdapter(827): Getview calling for position : 003-01 11:06:06.560: D/RewardGridAdapter(827): Getview calling for position : 003-01 11:06:06.580: D/RewardGridAdapter(827): Getview calling for position : 003-01 11:06:06.590: D/RewardGridAdapter(827): Getview calling for position : 003-01 11:06:06.720: D/RewardGridAdapter(827): Getview calling for position : 003-01 11:06:06.730: D/RewardGridAdapter(827): Getview calling for position : 003-01 11:06:06.730: D/RewardGridAdapter(827): Getview calling for position : 0

最佳答案

您的代码很可能没有任何问题。无法保证 AdapterView 调用适配器的 getView() 的次数。您的工作只是让 getView() 变得非常快。

关于Android gridview 适配器为零位置调用多个 getview(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15156675/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com