2012-12-20 33 views
0

自1周以来,我遇到了问题。我做了一个自定义列表视图。这些项目在点击按钮的列表视图中添加。所有项目都在列表视图中正常显示。但在10秒钟后,当设备指示灯熄灭并轻扫屏幕时,ListView中的项目消失。在XML我的列表视图:设备处于唤醒状态时,列表项消失

<ListView 
    android:id="@+id/lvEditItem" 
    android:layout_width="fill_parent" 
    android:layout_height="100dip" 
    android:overScrollMode="never" 
    android:layout_below="@+id/tvSelectToEdit" 
    android:cacheColorHint="@android:color/transparent" 
    android:paddingRight="10dip" 
    android:scrollbars="none" > 
</ListView> 

我的活动文件是: -

ListView mView; 
mView=(ListView)findViewById(R.id.lvEditItem); 
mView.setDivider(null); 
mView.setOnItemClickListener(new OnItemClickListener() { 

private View lastSelectedView = null; 

public void clearSelection() 
{ 
    if(lastSelectedView != null) 
     lastSelectedView.setBackgroundDrawable(getResources().getDrawable(android.R.color.transparent)); 
} 


@Override 
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) { 
    clearSelection(); 
    lastSelectedView = view; 
    view.setBackgroundResource(R.color.lightGreen); 

    String items=arrayList.get(position).toString(); 
    String s[]=items.split("~"); 

    System.out.println("value of Array>>>>>>>=="+s.length); 

    tvGender.setVisibility(View.VISIBLE); 

    tvCategory.setVisibility(View.VISIBLE); 

    tvSubCategory.setVisibility(View.VISIBLE); 

    tvStyle.setVisibility(View.VISIBLE); 

    tvSize.setVisibility(View.VISIBLE); 

    tvColor.setVisibility(View.VISIBLE); 

    tvGender.setText(s[0]); 
    GenderData.gender=s[0]; 
    tvGender.setTypeface(face); 

    tvCategory.setText(s[1]); 
    CategoryData.category=s[1]; 
    tvCategory.setTypeface(face); 

    tvSubCategory.setText(s[2]); 
    SubCategoryData.subCategory=s[2]; 
    tvSubCategory.setTypeface(face); 

    brand.setText(s[3]); 

    tvStyle.setText(s[4]); 
    StyleData.style=s[4]; 
    tvStyle.setTypeface(face); 

    tvSize.setText(s[5]); 
    SizeData.size=s[5]; 
    tvSize.setTypeface(face); 

    tvColor.setText(s[6]); 
    ColorData.color=s[6]; 
    tvColor.setTypeface(face); 

    String as=s[7].replace("$", ""); 
    price.setText(as); 

    originalRetailer.setText(s[8]); 

    originalLink.setText(s[9]); 
}); 

和我的适配器类是: -

public class CustomEditListAdapter extends BaseAdapter{ 

private LayoutInflater mInflater; 
ArrayList<String> mArrayList; 
ArrayList<String> mshowItemsOnListView; 
Typeface face; 
public CustomEditListAdapter(Context context,ArrayList<String> mArrayList,ArrayList<String> mshowItemsOnListView) { 
    mInflater = LayoutInflater.from(context); 
    this.mArrayList=mArrayList; 
    this.mshowItemsOnListView=mshowItemsOnListView; 
    face=Typeface.createFromAsset(context.getAssets(), "tahoma.ttf"); 
    System.out.println("Final ArrayList which has to be post>>>"+mArrayList.toString()); 
} 

@Override 
public int getCount() { 
    return ConcatData.mSet.size(); 
} 

@Override 
public Object getItem(int arg0) { 
    return mshowItemsOnListView.get(arg0); 
} 

@Override 
public long getItemId(int position) { 
    return position; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    ViewHolder holder; 


    if (convertView == null) { 
     convertView = mInflater.inflate(R.layout.custom_select_item_view, null); 
     holder = new ViewHolder(); 
     holder.txtName = (TextView) convertView.findViewById(R.id.textView1); 
     holder.txtName.setTypeface(face); 

     convertView.setTag(holder); 
    } 
    else { 
     holder = (ViewHolder) convertView.getTag(); 
    } 

    // holder.txtName.setText(mArrayList.get(position)); 
    holder.txtName.setText(mshowItemsOnListView.get(position)); 
    return convertView; 
} 

static class ViewHolder { 
    TextView txtName; 
} 
} 

的custom_select_item_view.xml是:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

<ImageView 
     android:id="@+id/ivArrow" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/list_arrow_my_item_box" 
     android:layout_alignParentLeft="true" 
     android:layout_alignTop="@+id/textView1" 
     android:padding="5dip" 
     /> 

在此先感谢!

回答

0

这很可能是由于活动的生命周期,请参阅Android activity life cycle - what are all these methods for?了解更多信息。

简而言之,如果您的应用程序被暂停或暂停,那么当应用程序再次恢复时,其资源将被分解并重建。

在这个过程中,您添加的项目列表被销毁并重建。虽然重建添加的项目也需要(明确)恢复!因此,请让他们将商品信息存储在“安全”位置,以便能够使用此存储的信息重建列表项目。

有关详细信息,请参阅Saving Persistent State上的Android文档。

相关问题