- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个带有 GridView 的应用程序,它包含 60 个元素...这是 ImageAdapter 的代码,它扩展了 BaseAdapter 以显示它们...
public class ImageAdapter extends BaseAdapter {
private Context context;
private final String[] mobileValues;
public ImageAdapter(Context context, String[] mobileValues) {
this.context = context;
this.mobileValues = mobileValues;
}
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View gridView;
if (convertView == null) {
gridView = new View(context);
// get layout from mobile.xml
gridView = inflater.inflate(R.layout.mobile, null);
// set value into textview
TextView textView = (TextView) gridView
.findViewById(R.id.grid_item_label);
textView.setText(mobileValues[position]);
// set image based on selected text
ImageView imageView = (ImageView) gridView
.findViewById(R.id.grid_item_image);
String mobile = mobileValues[position];
if (mobile.equals("Alfa Romeo")) {
imageView.setImageResource(R.drawable.alfa);
} else if (mobile.equals("Aston Martin")) {
imageView.setImageResource(R.drawable.aston);
} else if (mobile.equals("Audi")) {
imageView.setImageResource(R.drawable.audi);
} else if (mobile.equals("Bentley")) {
imageView.setImageResource(R.drawable.bentley);
} else if (mobile.equals("BMW")) {
imageView.setImageResource(R.drawable.bmw);
} else if (mobile.equals("Bugatti")) {
imageView.setImageResource(R.drawable.bugatti);
} else if (mobile.equals("Buick")) {
imageView.setImageResource(R.drawable.buick);
} else if (mobile.equals("Cadillac")) {
imageView.setImageResource(R.drawable.cadillac);
} else if (mobile.equals("Chery")) {
imageView.setImageResource(R.drawable.chery);
} else if (mobile.equals("Chevrolet")) {
imageView.setImageResource(R.drawable.chevrolet);
} else if (mobile.equals("Chrysler")) {
imageView.setImageResource(R.drawable.chrysler);
} else if (mobile.equals("Citroen")) {
imageView.setImageResource(R.drawable.citroen);
} else if (mobile.equals("Dacia")) {
imageView.setImageResource(R.drawable.dacia);
} else if (mobile.equals("Daewoo")) {
imageView.setImageResource(R.drawable.daewoo);
} else if (mobile.equals("Dodge")) {
imageView.setImageResource(R.drawable.dodge);
} else if (mobile.equals("Ferrari")) {
imageView.setImageResource(R.drawable.ferrari);
} else if (mobile.equals("Fiat")) {
imageView.setImageResource(R.drawable.fiat);
} else if (mobile.equals("Ford")) {
imageView.setImageResource(R.drawable.ford);
} else if (mobile.equals("Gaz")) {
imageView.setImageResource(R.drawable.gaz);
} else if (mobile.equals("Holden")) {
imageView.setImageResource(R.drawable.holden);
} else if (mobile.equals("Honda")) {
imageView.setImageResource(R.drawable.honda);
} else if (mobile.equals("Hyindai")) {
imageView.setImageResource(R.drawable.hyundai);
} else if (mobile.equals("Infinity")) {
imageView.setImageResource(R.drawable.infiniti);
} else if (mobile.equals("Jaguar")) {
imageView.setImageResource(R.drawable.jaguar);
} else if (mobile.equals("Jeep")) {
imageView.setImageResource(R.drawable.jeep);
} else if (mobile.equals("Kia")) {
imageView.setImageResource(R.drawable.kia);
} else if (mobile.equals("Lada")) {
imageView.setImageResource(R.drawable.lada);
} else if (mobile.equals("Lamborghini")) {
imageView.setImageResource(R.drawable.lamborghini);
} else if (mobile.equals("Lancia")) {
imageView.setImageResource(R.drawable.lancia);
} else if (mobile.equals("Land Rover")) {
imageView.setImageResource(R.drawable.land);
} else if (mobile.equals("Lexus")) {
imageView.setImageResource(R.drawable.lexus);
} else if (mobile.equals("Lotus")) {
imageView.setImageResource(R.drawable.lotus);
} else if (mobile.equals("Maserati")) {
imageView.setImageResource(R.drawable.maserati);
} else if (mobile.equals("Maybach")) {
imageView.setImageResource(R.drawable.maybach);
} else if (mobile.equals("Mazda")) {
imageView.setImageResource(R.drawable.mazda);
} else if (mobile.equals("Mercedes")) {
imageView.setImageResource(R.drawable.mercedes);
} else if (mobile.equals("Mercuri")) {
imageView.setImageResource(R.drawable.mercury);
} else if (mobile.equals("Mini")) {
imageView.setImageResource(R.drawable.mini);
} else if (mobile.equals("Mitshubishi")) {
imageView.setImageResource(R.drawable.mitsubishi);
} else if (mobile.equals("Nissan")) {
imageView.setImageResource(R.drawable.nissan);
} else if (mobile.equals("Opel")) {
imageView.setImageResource(R.drawable.opel);
} else if (mobile.equals("Pagani")) {
imageView.setImageResource(R.drawable.pagani);
} else if (mobile.equals("Peugeot")) {
imageView.setImageResource(R.drawable.peugeot);
} else if (mobile.equals("Pontiac")) {
imageView.setImageResource(R.drawable.pontiac);
} else if (mobile.equals("Porshe")) {
imageView.setImageResource(R.drawable.porshe);
} else if (mobile.equals("Renault")) {
imageView.setImageResource(R.drawable.renault);
} else if (mobile.equals("Rolls Royce")) {
imageView.setImageResource(R.drawable.rolls);
} else if (mobile.equals("Rover")) {
imageView.setImageResource(R.drawable.rover);
} else if (mobile.equals("Saab")) {
imageView.setImageResource(R.drawable.saab);
} else if (mobile.equals("Scion")) {
imageView.setImageResource(R.drawable.scion);
} else if (mobile.equals("Seat")) {
imageView.setImageResource(R.drawable.seat);
} else if (mobile.equals("Skoda")) {
imageView.setImageResource(R.drawable.skoda);
} else if (mobile.equals("Sssang Young")) {
imageView.setImageResource(R.drawable.ssang);
} else if (mobile.equals("Subaru")) {
imageView.setImageResource(R.drawable.subaru);
} else if (mobile.equals("Suzuki")) {
imageView.setImageResource(R.drawable.suzuki);
} else if (mobile.equals("Toyota")) {
imageView.setImageResource(R.drawable.toyota);
} else if (mobile.equals("Vauxhall")) {
imageView.setImageResource(R.drawable.vauxhall);
} else if (mobile.equals("Volkswagen")) {
imageView.setImageResource(R.drawable.volkswagen);
} else if (mobile.equals("Volvo")) {
imageView.setImageResource(R.drawable.volvo);
} else {
imageView.setImageResource(R.drawable.acura);
}
} else {
gridView = (View) convertView;
}
return gridView;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return mobileValues.length;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
}
问题是 - 当我向下滚动 GridView 时 - 它从一开始就开始显示元素......我的错误是什么????
最佳答案
您没有正确使用 convertView
。适配器中的 View 被回收以防止创建额外的 View 。如果 View 被回收,它将在 convertView
中传递。但这里的重点是 View 以前可能属于不同的项目。如果您不再次填充 View ,它将包含不正确的数据 - 属于被回收的其他项目的数据。
getView
方法应该包含如下内容:
public View getView(int position, View convertView, ViewGroup parent) {
View gridView;
if (convertView == null) {
// create new gridView here
} else {
// recycle the convertView
gridView = (View) convertView;
}
// fill the gridView here
return gridView;
}
关于Android GridView 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14023063/
我有一个需要以编程方式作为列(而不是行)绑定(bind)到 gridview 的值列表。例如,如果我的 DAL 返回 10 个值,我需要将这 10 个值显示为 gridview 中的列作为标题文本,并
我有一个使用 out-gridview 显示结果的脚本.这是一个简单的例子: "hello world" | out-gridview 当我使用 Run with PowerShell 运行脚本时,它
我正在尝试使用工作正常的 Kartik 导出小部件,除了它没有在扩展“函数/网格”中获取数据。现在我当然明白它是如何工作的,它实际上并没有显示任何东西,只是呈现另一个 View 。但我不知道如何在导出
在 Android 教程中,GridView tutorial准确的说是有一行代码 GridView gridview = (GridView) findViewById(R.id.gridview)
我正在尝试为与我的 gridview 关联的每一列添加一个标题,这样当页面足够宽以显示多行项目时,列标题应该显示在每一列的顶部,如果页面缩小,以至于该列不再适合。 最终结果看起来像这样: 2 colu
在我使用 comboBox 而不是 default(textBox) 在 gridview 中使用这个搜索之前: [ 'attribute' => 'project_status',
我想在列中显示我的交易表中一个/所有帐户的总余额。余额列应显示添加上一行总余额的余额。 我的网格 View 代码是 'yii\grid\SerialColumn'],
我正在使用 gridview 列出我的所有数据。我的 table 看起来像这样。 $dataProvider, 'columns' => [ 'firstName',
我目前正在构建一个 Windows 8 XAML C# 应用程序。在一个页面中,我有一个用于水平滑动和滚动的滚动查看器。我有几个控件可以很好地与 scorllviewer 配合使用。但是当您滚动并且光
当调整 GridView 的大小时,它的元素被重新排列,该元素的动画似乎不起作用。 在这里你可以找到一个简单的例子:http://pastebin.com/BgST6sCv 如果单击示例中的其中一个方
如何动态更改 gridview 模板列顺序? 最佳答案 迭代 通通栏目 的网格 View 对象和 店铺 他们在 收藏 . List columns = new List(); foreach (Dat
我在 Yii2 中使用了 CRUD 生成器,它为我的 actionIndex 生成了以下代码 Controller ... public function actionIndex() { $s
在我的用户模型中我有一个函数: public function getRole() { if ($this->role == self::ROLE_USER) { return
我正在构建一个带有 Yii2 框架的 webapp,它将为用户(登录)提供下载管理员预先上传文件的能力。 我已经创建了操作 actionDownload在调用 sendFile() 的特定 Contr
我想在 GridView 中订购图像。我已经使用列表框并成功将图像添加到其中。它的显示如下 但我希望这些图像显示在 GridView 中。可能与否。 请帮助我......提前致谢 最佳答案 出于此类目
我试图通过在 QtQuick 2.0 (Qt 5) 中动态填充 ListModel 来填充 GridView。它可以工作,但应用程序启动速度非常慢: 应用程序窗口立即出现,但大约需要 2 秒才会出现浅
我在 Yii2 GridView 小部件中显示一些列,“执行人员名称”是其中之一,但它应该仅在主管登录时显示,而不是在执行人员登录时显示。 当我将可见值硬编码为零时,它不会显示如下: [ 'l
我想用 HTML 制作一个表格。所以我从数据库中获取了一些数据。 每个项目都是一个用户。用户有用户名、名字、姓氏和电子邮件。我想制作一个表格来列出这些用户。 每个用户都必须换行。我已经在互联网上搜索过
我想在 pjax 处于事件状态的排序 gridview 之后运行脚本。重新加载 gridview 后我找不到任何事件处理程序。 pjax调用和gridview刷新后有没有正确的事件处理方法? 最佳答案
在 WinRT 上,我有一个 GridView 。我想在到达 gridview 的末尾时执行一个方法。 但是,没有像 GridView 那样的事件方法。 我尝试检测对 gridview 的操纵,但似乎
我是一名优秀的程序员,十分优秀!