我在我的應用程序中放置了一個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中,以供重用。正如你現在所知道的那樣,無論如何你都需要提供新的價值,否則事情會變得有點怪異。 –