我在我的应用程序中放置了一个gridview,并且显示信息。正如你可以看到我对每平方米的索引号的顶部,开始为0。当我滚动我的屏幕,我的号码开始17后改变指数再次启动0和倒退在GridView中显示项目的问题
http://img202.imageshack.us/img202/8108/39248258.png
这里是我的代码:
(的onCreate功能)
myGrid = (GridView)findViewById(R.id.grid);
myGrid.setAdapter(new ImageAdapter(this));
我BaseAdpater:
public class ImageAdapter extends BaseAdapter
{
Context MyContext;
public ImageAdapter(Context _MyContext)
{
MyContext = _MyContext;
}
@Override
public int getCount()
{
/* Set the number of element we want on the grid */
return searchResult.size();
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
View MyView = convertView;
if (convertView == null)
{
/*we define the view that will display on the grid*/
//Inflate the layout
LayoutInflater li = getLayoutInflater();
MyView = li.inflate(R.layout.item, null);
String[] myData = searchResult.get(position);
// Add The Text!!!
TextView tv = (TextView)MyView.findViewById(R.id.no);
tv.setText(" "+ position);
TextView ap = (TextView)MyView.findViewById(R.id.apperture);
ap.setText(" "+ myData[1]);
TextView sp = (TextView)MyView.findViewById(R.id.speed);
sp.setText(" "+ myData[2]);
}
return MyView;
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return arg0;
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return arg0;
}
}
而且item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_height="wrap_content" android:layout_width="wrap_content">
<LinearLayout android:id="@+id/linearLayout1" android:layout_width="match_parent" android:layout_height="wrap_content">
<TextView android:id="@+id/no" android:text="1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceSmall"></TextView>
</LinearLayout>
<TextView android:text="TextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceSmall" android:id="@+id/apperture"></TextView>
<TextView android:id="@+id/speed" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView"></TextView>
</LinearLayout>
你见过这个问题?当我改变AVD(以不同的分辨率)时,问题开始于不同的索引号 感谢您的帮助
谢谢!我不知道如何运作的reinflate视图! – jukx
Listview可以回收项目视图,这样就不会不必要地执行从XML重新注入的昂贵操作。当列表项脱离屏幕时,其视图可以作为convertView传递到Adapter.getView中,以供重用。正如你现在所知道的那样,无论如何你都需要提供新的价值,否则事情会变得有点怪异。 –