액티비티의 리스트뷰에서 아이템을 선택하여 다음 액티비티로 넘어갑니다.
그리고 finish()하여 기존 리스트뷰가 있는 액티비티로 넘어오죠~
그럼 기존의 정지되어 있던 부모액티비티의 리스트뷰는 그대로 보여지는데요~
저는 리스트가 그전의 위치를 그대로 기억하며서 리스트의 아이템의 값만 조금 바꾸고 싶습니다.
리스트의 가장 아래 아이템을 클릭해서 갔다가 돌아오면 리스트는 그대로 가장 아래 그림을 보여주면서
그 클릭했던 아이템의 속성중 한 값만 업데이트를 하고 싶은데요~
가능한것인가요~??
전 그냥 리스트 위치 기억하지 않고 전체로 리스트 업데이트 해서만 사용해봐서요~
그러면 리스트가 가장 위의 아이템을 비추고 있더라구요~
그럼 좋은 답변 기다립니다.
수고하세요
대답 감사합니다.
dingpong 님께 대답이 저의 생각과 가장 근접한것 갔습니다.
저는 리스트의 position은 알고 있기에 리스트뷰의 한 포지션의 아이템 값만 변경하면 됩니다.
아래의 layout이 바로 리스트뷰의 한 아이템의 레이아웃 입니다.
android:id="@+id/video_list_durtime의 아이디를 가진 값만 디비의 값을 가져와서 다시 뿌려주고 싶은데요~
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:paydos="http://schemas.android.com/apk/res/com.k2.video"
android:id="@+id/video_listview_layout" android:layout_height="96px"
android:orientation="horizontal" android:layout_width="fill_parent"
android:background="#000000">
<ImageView android:id="@+id/video_list_image"
android:layout_height="96px" android:layout_width="96px"
android:background="#3c3c3c" android:adjustViewBounds="false"
android:scaleType="fitXY" android:padding="1px"
android:layout_marginRight="3px"></ImageView>
<LinearLayout android:id="@+id/video_list_text_layout"
android:orientation="vertical" android:layout_height="96px"
android:layout_width="231px" android:background="#262626">
<TextView android:id="@+id/video_list_title"
android:layout_width="186px" android:layout_marginLeft="11px"
android:gravity="top" android:layout_height="wrap_content"
android:layout_marginTop="20px" style="@style/listTextStyle"></TextView>
<TextView android:gravity="center_vertical" android:id="@+id/video_list_durtime"
android:layout_height="wrap_content" android:layout_width="wrap_content"
style="@style/listAlbumTextStyle" android:layout_marginLeft="11px"></TextView>
</LinearLayout>
</LinearLayout>
-소스-
ViewGroup groupViews1 = (ViewGroup) mListView.getChildAt(0);
TextView timeview = (TextView) groupViews1.findViewById(R.id.video_list_durtime);
timeview.setText("#################");
하니 에러는 나지 않는데~
값이 바뀌어 있지 않았습니다.
nitice 라는 개념이 먼지 모르겠네요~
방법을 좀더 자세히 알려주시면 감사하겠습니다.
@Override onSaveInstanceState() 라는 함수를 지금은 사용하지 않는데
자료들이 있어서 써보니 저는 onCreate()에서 번들값이 항상
null 값이였습니다.
액티비티 라이프 사이클을 볼 경우에 보면 일지 정지나 정지 할경우에 동작을 하고
리줌 하기 전에 onCreate()에서 번들로 값을 가지고 오는데요~
그렇다면 finish()를 해야지만 값을 가지고 온다는 것이 아닌가요??
해당 인자를 변수에 기억해 놨다가 사용하면 됩니다.^^
ListView에 표현하고 있는 데이터를 어떻게 사용하고 계신지 모르겠지만, ArrayList로 가지고 있다면 해당 데이터를 바꾸고 notice 날려주면 되구요.. 아니라면 직접 View를 얻어와서 속성을 바꿔주면 되는데요. ListView에 함수중에 해당 Position의 View를 얻어올 수 있는 함수가 있습니다. View를 얻어온다음에 find 해서 원하는 View를 찾아서 속성을 바꾸시면 됩니다.
말로 하려니까 좀 어렵네요'ㅁ';