我需要监听我的片段,当它从处理片段的活动中自我片段删除它。怎么做?
我有一个扩展ActionBarActivity的活动,其布局如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!-- Framelayout to display Fragments -->
<FrameLayout
android:id="@+id/result_search"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</FrameLayout>
<ListView
android:id="@+id/activity_googlecards_listview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#e2e2e2"
android:clipToPadding="false"
android:divider="@null"
android:dividerHeight="16dp"
android:fadingEdge="none"
android:padding="16dp"
android:scrollbarStyle="outsideOverlay"
android:visibility="visible" />
在我的listview上的onItemClik,它应该显示如下的其他片段:
public void onItemClick(AdapterView<?> parent, View view, int position, long id){
mUpdateAdvertisementFragment = new UpdateAdvertisementFragment();
Bundle extras = new Bundle();
extras.putString(TAG_ADVERTISEMENT_ID, advertisementData.get(position).getAdvertisementID().toString());
mUpdateAdvertisementFragment.setArguments(extras);
fragmentManager.beginTransaction().replace(R.id.result_search, mUpdateAdvertisementFragment).addToBackStack(null).commit();
}
在我的片段中,我有一个按钮,可以删除它自己的片段
@Override
public void onClick(View v) {
FragmentManager fragmentManager = getFragmentManager();
switch(v.getId()){
case R.id.back_button :
// back button
fragmentManager.beginTransaction().remove(this).commit();
break;
这里是我的片段布局
<Button
android:id="@+id/back_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:drawableLeft="@drawable/ic_action_back"
android:gravity="left|center_vertical"
style="?android:attr/buttonBarButtonStyle"
android:text="@string/back_button_to_search_result"/>
</LinearLayout>
我的情景:
1.用户点击片段
后的后退按钮
2.片段自行删除
3.返回活动
4.从web服务器同步listview中的数据
更新: 我的活动有同步功能
public void syncData(){
// init progress dialog
dialog = ProgressDialog.show(ListAdvertisementActivity.this, "", "Getting required data...", true);
所以,我需要听取我的片段,当它片段被自己删除时。怎么做?我应该需要一个界面吗?你能给我一些代码片段吗?谢谢。
答案 0 :(得分:0)
在您想要自行删除的片段中尝试此操作
public void onDestroy(){
super.onDestroy();
((YourActivityClassName)getActivity()).syncData();
}
答案 1 :(得分:0)
尝试在片段的方法syncData
中调用onDetach()
函数:)