ListView исчезает после возврата из активности - PullRequest
0 голосов
/ 14 октября 2011

У меня есть два экрана, один из которых отображает записи в виде списка «Экран списка просмотра» и второй, который используется для отображения конкретной записи «Экран конкретной записи» . Я использую grid_item.xml, который используется для хранения данных строки в виде списка. 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» к этому изображению (см. Последние несколько строк вышеупомянутого 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 Ответ

1 голос
/ 18 октября 2011

Я нашел решение ... Переопределить onRestart () и добавить свой код здесь, который заполняет список. В моем случае это LoadInspection ().

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

Может ли кто-нибудь прокомментировать это поведение представления списка?Благодарю.

...