ListView从活动返回后消失

时间:2011-10-14 05:28:27

标签: android listview activity-lifecycle

我有两个屏幕,列出了列表视图中的记录“ListView屏幕”&第二个用于显示特定记录“特定记录屏幕”。 我正在使用grid_item.xml,它用于保存listview中一行的数据。 grid_item.xml如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
        <TextView android:id="@+id/col1"
            android:layout_height="fill_parent"
            android:layout_width="wrap_content"
            android:width="50dip"
        />
        <TextView android:id="@+id/col2"
            android:layout_height="fill_parent"
            android:layout_width="wrap_content"
            android:width="200dip"
        />
        <TextView android:id="@+id/col3"
            android:layout_height="fill_parent"
            android:layout_width="wrap_content"
            android:width="200dip"
        />
       <TextView android:id="@+id/col4"
            android:layout_height="fill_parent"
            android:layout_width="wrap_content"
            android:width="200dip"
        />
        <ImageView android:id="@+id/editimage"
            android:layout_width="30dip"
            android:layout_height="30dip" 
            android:background="@drawable/edit"
            android:clickable="true"
            android:onClick="ClickHandlerForEditImage"
            />  
</LinearLayout>

有一个ImageView用于在点击时打开“特定记录屏幕”。我已将“ClickHandlerForEditImage”事件附加到该imageview(请参阅上面xml的最后几行)。

代码:

public void ClickHandlerForEditImage(View v) 
{

    LinearLayout vwParentRow = (LinearLayout)v.getParent();

    TextView txtId = (TextView)vwParentRow.getChildAt(0);

    long rowId =  CommonMethods.GetLong(txtId);

    //Log.d("Inspection", "onItemClick Postion "+ rowId);
    //vwParentRow.refreshDrawableState();      

    if(rowId > 0)
{
       Intent intent = new Intent("com.moftak.db.DatabasesActivity"); 
       intent.putExtra("RecordId", rowId);
       startActivity(intent); 
}

}

现在问题是它工作正常,“特定记录屏幕”打开,但当我按下“后退按钮”时,“ListView屏幕”显示但ListView(或ListView项目)消失。

有人可以帮助我吗?提前感谢您宝贵的时间和时间。救命。

1 个答案:

答案 0 :(得分:1)

我找到了解决方案...... 覆盖onRestart()&amp;在这里添加你的代码填充列表在我的情况下查看它是LoadInspection()。

@Override 
public void onRestart() 
{ 
     super.onRestart(); 
     LoadInspections(); 
}

有人可以对List View的这种行为发表评论吗?谢谢。