Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
mcGurov
3 / 3 / 0
Регистрация: 30.07.2013
Сообщений: 100
#1

MenuItemSelected не работает в фрагменте - Программирование Android

28.12.2013, 15:30. Просмотров 911. Ответов 8
Метки нет (Все метки)

Метод return super.onMenuItemSelected(featureId, item); никак не хочет работать в фрагменте, почему? До работы приложения остаётся только одна ошибка, помогите решить проблему пожалуйста!

Ошибка в 78 строке
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
package planner;
 
 
import com.example.navigationsample.R;
 
import android.app.ListActivity;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.ListFragment;
import android.view.ContextMenu;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.ContextMenu.ContextMenuInfo;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.AdapterView.AdapterContextMenuInfo;
 
public class ReminderListFragment extends ListFragment {
    private static final int ACTIVITY_CREATE=0;
    private static final int ACTIVITY_EDIT=1;
    
    private RemindersDbAdapter mDbHelper;
    
    /** Called when the activity is first created. */
    @Override
      public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    final View v = inflater.inflate(R.layout.reminder_list, container, false);
        
        mDbHelper = new RemindersDbAdapter(getActivity());
        mDbHelper.open();
        fillData();
        registerForContextMenu(getView());
        return v;
 
    }
    
 
    private void fillData() {
        Cursor remindersCursor = mDbHelper.fetchAllReminders();
        getActivity().startManagingCursor(remindersCursor);
        
        // Create an array to specify the fields we want to display in the list (only TITLE)
        String[] from = new String[]{RemindersDbAdapter.KEY_TITLE};
        
        // and an array of the fields we want to bind those fields to (in this case just text1)
        int[] to = new int[]{R.id.text1};
        
        // Now create a simple cursor adapter and set it to display
        SimpleCursorAdapter reminders = 
                new SimpleCursorAdapter(getActivity(), R.layout.reminder_row, remindersCursor, from, to);
        setListAdapter(reminders);
    }
    
    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu, null);
        MenuInflater mi = getActivity().getMenuInflater();
        mi.inflate(R.menu.list_menu, menu); 
        return true;
    }
 
    public boolean onMenuItemSelected(int featureId, MenuItem item) {
        switch(item.getItemId()) {
        case R.id.menu_insert: 
            createReminder();
            return true; 
        case R.id.menu_settings: 
            Intent i = new Intent(getActivity(), TaskPreferences.class); 
            startActivity(i); 
            return true;
        }
       
        return super.onMenuItemSelected(featureId, item);
    }
    
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v,
            ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        MenuInflater mi = getActivity().getMenuInflater(); 
        mi.inflate(R.menu.list_menu_item_longpress, menu); 
    }
 
    @Override
    public boolean onContextItemSelected(MenuItem item) {
        switch(item.getItemId()) {
        case R.id.menu_delete:
            AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
            mDbHelper.deleteReminder(info.id);
            fillData();
            return true;
        }
        return super.onContextItemSelected(item);
    }
    
    private void createReminder() {
        Intent i = new Intent(getActivity(), ReminderEditFragment.class);
        startActivityForResult(i, ACTIVITY_CREATE);
    }
    
    public void onListItemClick(ListView l, View v, int position, long id) {
        super.onListItemClick(l, v, position, id);
        Intent i = new Intent(getActivity(), ReminderEditFragment.class);
        i.putExtra(RemindersDbAdapter.KEY_ROWID, id);
        startActivityForResult(i, ACTIVITY_EDIT); 
    }
 
    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent intent) {
        super.onActivityResult(requestCode, resultCode, intent);
        fillData();
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2013, 15:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос MenuItemSelected не работает в фрагменте (Программирование Android):

Вывод во втором фрагменте длины текста, введённого в первом фрагменте активити - Программирование Android
Создать активити с двумя фрагментами. В первый фрагмент должен содержать поле ввода, второй текстовое поле. Выводить во втором фрагменте...

Фрагмент во фрагменте - Программирование Android
Добрый день. А возможно ли создание фрагмента состоящего из нескольких фрагментов?

Webview на фрагменте - Программирование Android
Всем привет! Есть проблемка, может кто сталкивался... Есть фрагмент с webview. Меняю размер шрифта в webview, и меняется только размер на...

Потоки в фрагменте не запустить? - Программирование Android
Не могу использовать потоки в фрагменте. использую конструкцию: new Thread() { @Override public void run() { ...code ...

Остановить выполнение во фрагменте - Программирование Android
Есть для примера код который расположен в фрагменте. как остановить программу // Если номер введен неверно ...

Отображение ListView во фрагменте - Программирование Android
Привет, всем! Буду очень признательна, если кто-нибудь сможет мне помочь разобраться. Я пишу программку для расписания занятий моего...

8
angryrobot
Командир зеленых роботов
348 / 285 / 53
Регистрация: 08.10.2013
Сообщений: 564
28.12.2013, 18:34 #2
Внутри метода onMenuItemSelected ты пытаешься вызвать его реализацию из суперкласса Fragment, а у него такого метода нет. Вот поэтому и ошибка. Обработчик нажатия пунктов меню должен располагаться в коде активити.
1
mcGurov
3 / 3 / 0
Регистрация: 30.07.2013
Сообщений: 100
28.12.2013, 22:22  [ТС] #3
Так раньше это и было активностью, поэтому всё работало, а я пытаюсь переделать под фрагмент, какой выход?

Добавлено через 3 часа 31 минуту
Как же сделать эту реакцию на меню? А можно фрагменту как то передать данные из активности? Помогите, ничего не помогает!
0
mcGurov
3 / 3 / 0
Регистрация: 30.07.2013
Сообщений: 100
03.01.2014, 19:34  [ТС] #4
angryrobot, подскажите хоть примерный код решения проблемы, у меня не хватает знаний... Пожалуйста!
0
angryrobot
Командир зеленых роботов
348 / 285 / 53
Регистрация: 08.10.2013
Сообщений: 564
03.01.2014, 19:49 #5
Цитата Сообщение от mcGurov Посмотреть сообщение
Как же сделать эту реакцию на меню?
первый делом убрать этот код из фрагмента и поместить его в ту активити в которой будет отображаться фрагмент.
Цитата Сообщение от mcGurov Посмотреть сообщение
А можно фрагменту как то передать данные из активности?
Можно. Для этого есть мильён способов. Самый простой и очевидный:
1) В активити создаем public метод типа getSomeData() который возвращает нужные данные из активити
2) Внутри фрагмента вызываем метод getActivity() и делаем приведение к %ИмяКлассаВашейАктивити% и потом вызываем метод getSomeData() и получаем что хотели.
Цитата Сообщение от mcGurov Посмотреть сообщение
подскажите хоть примерный код решения проблемы
Здесь нет универсального решения, всё очень индивидуально. Нужно разбираться в коде вашего проекта
1
mcGurov
3 / 3 / 0
Регистрация: 30.07.2013
Сообщений: 100
03.01.2014, 20:03  [ТС] #6
Цитата Сообщение от angryrobot Посмотреть сообщение
Здесь нет универсального решения, всё очень индивидуально. Нужно разбираться в коде вашего проекта
В том то и дело, у меня в приложении только одно активити и то extends FragmentActivity , остальные всё фрагменты... Хорошо, я перенесу сюда реакцию на меню, кажется не в тему получится, как потом связать с фрагментом? Код MainActivity ниже...
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
package net.aquainter.aquabooster;
 
 
 
 
import planner.ReminderListFragment;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
 
public class MainActivity extends FragmentActivity {
 
  private shared.ui.actionscontentview.ActionsContentView viewActionsContentView;
 
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
 
    viewActionsContentView = (shared.ui.actionscontentview.ActionsContentView) findViewById(R.id.actionsContentView);
 
    final ListView viewActionsList = (ListView) findViewById(R.id.actions);
 
    final String[] values = new String[] { "Аквариум", "Калькулятор", "Рыбки", "Планировщик", "Настройки" };
    final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
        android.R.layout.simple_list_item_1, android.R.id.text1, values);
 
    viewActionsList.setAdapter(adapter);
    viewActionsList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
      @Override
      public void onItemClick(AdapterView<?> adapter, View v, int position,
          long flags) {
        showFragment(position);
      }
    });
 
    showFragment(0);
  }
 
  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
  }
 
  private void showFragment(int position) {
    final Fragment f;
    switch (position) {
    case 0:
      f = new HomeFragment();
      break;
    case 1:
      f = new CalculatorFragment();
      break;
    case 2:
      f = new ComparingFragment();
      break;
    case 3:
        f = new ReminderListFragment();
        break;
    case 4:
        f = new SettingsFragment();
        break;
 
    default:
      return;
    }
    getSupportFragmentManager().beginTransaction().replace(R.id.content, f).commit();
 
    viewActionsContentView.showContent();
  }
 
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    return null;
}
}
0
angryrobot
Командир зеленых роботов
348 / 285 / 53
Регистрация: 08.10.2013
Сообщений: 564
03.01.2014, 20:34 #7
Цитата Сообщение от mcGurov Посмотреть сообщение
кажется не в тему получится, как потом связать с фрагментом?
Связать с фрагментом что?
И еще: при вызове метода showFragment у вас каждый раз создается новый фрагмент. Это очень плохо.
0
mcGurov
3 / 3 / 0
Регистрация: 30.07.2013
Сообщений: 100
03.01.2014, 20:43  [ТС] #8
Давайте обобщу свой вопрос, итак есть MainActivity, которая переключает фрагменты
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
package net.aquainter.aquabooster;
 
 
 
 
import planner.ReminderListFragment;
import planner.TaskPreferences;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
 
public class MainActivity extends FragmentActivity {
 
  private shared.ui.actionscontentview.ActionsContentView viewActionsContentView;
 
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
 
    viewActionsContentView = (shared.ui.actionscontentview.ActionsContentView) findViewById(R.id.actionsContentView);
 
    final ListView viewActionsList = (ListView) findViewById(R.id.actions);
 
    final String[] values = new String[] { "Пункт1", "Пункт2", "Пункт3", "Пункт4", "Пункт5" };
    final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
        android.R.layout.simple_list_item_1, android.R.id.text1, values);
 
    viewActionsList.setAdapter(adapter);
    viewActionsList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
      @Override
      public void onItemClick(AdapterView<?> adapter, View v, int position,
          long flags) {
        showFragment(position);
      }
    });
 
    showFragment(0);
  }
 
  public boolean onMenuItemSelected(int featureId, MenuItem item) {
      switch(item.getItemId()) {
      case R.id.menu_insert: 
          createReminder();
          return true; 
      case R.id.menu_settings: 
        Intent i = new Intent(getActivity(), TaskPreferences.class); 
        startActivity(i); 
          return true;
      }
     
      return super.onMenuItemSelected(featureId, item);
      
  }
  
  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
  }
 
  private void showFragment(int position) {
    final Fragment f;
    switch (position) {
    case 0:
      f = new HomeFragment();
      break;
    case 1:
      f = new CalculatorFragment();
      break;
    case 2:
      f = new ComparingFragment();
      break;
    case 3:
        f = new ReminderListFragment();
        break;
    case 4:
        f = new SettingsFragment();
        break;
 
    default:
      return;
    }
    getSupportFragmentManager().beginTransaction().replace(R.id.content, f).commit();
 
    viewActionsContentView.showContent();
  }
 
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    return null;
}
}


Один из пунктов - это планировщик, естественно тоже фрагмент, код пустой, что же нужно в него вставить из активности ReminderListActivity???
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package planner;
 
 
 
import net.aquainter.aquabooster.R;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
 
public class ReminderListFragment extends ListFragment {
    
      public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    final View v = inflater.inflate(R.layout.reminder_list, container, false);
    
        return v;
 
    }
    
}


И есть активность планировщика, которую как раз и надо связать как то с фрагментом выше
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
package planner;
 
 
 
import net.aquainter.aquabooster.R;
import android.app.ListActivity;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.AdapterView.AdapterContextMenuInfo;
 
public class ReminderListActivity extends ListActivity {
    private static final int ACTIVITY_CREATE=0;
    private static final int ACTIVITY_EDIT=1;
    
    private RemindersDbAdapter mDbHelper;
    
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.reminder_list);
        mDbHelper = new RemindersDbAdapter(this);
        mDbHelper.open();
        fillData();
        registerForContextMenu(getListView());
 
    }
    
 
    
    private void fillData() {
        Cursor remindersCursor = mDbHelper.fetchAllReminders();
        startManagingCursor(remindersCursor);
        
        // Create an array to specify the fields we want to display in the list (only TITLE)
        String[] from = new String[]{RemindersDbAdapter.KEY_TITLE};
        
        // and an array of the fields we want to bind those fields to (in this case just text1)
        int[] to = new int[]{R.id.text1};
        
        // Now create a simple cursor adapter and set it to display
        SimpleCursorAdapter reminders = 
                new SimpleCursorAdapter(this, R.layout.reminder_row, remindersCursor, from, to);
        setListAdapter(reminders);
    }
    
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);
        MenuInflater mi = getMenuInflater();
        mi.inflate(R.menu.list_menu, menu); 
        return true;
    }
 
    @Override
    public boolean onMenuItemSelected(int featureId, MenuItem item) {
        switch(item.getItemId()) {
        case R.id.menu_insert: 
            createReminder();
            return true; 
        case R.id.menu_settings: 
            Intent i = new Intent(this, TaskPreferences.class); 
            startActivity(i); 
            return true;
        }
       
        return super.onMenuItemSelected(featureId, item);
    }
    
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v,
            ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        MenuInflater mi = getMenuInflater(); 
        mi.inflate(R.menu.list_menu_item_longpress, menu); 
    }
 
    @Override
    public boolean onContextItemSelected(MenuItem item) {
        switch(item.getItemId()) {
        case R.id.menu_delete:
            AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
            mDbHelper.deleteReminder(info.id);
            fillData();
            return true;
        }
        return super.onContextItemSelected(item);
    }
    
    private void createReminder() {
        Intent i = new Intent(this, ReminderEditFragment.class);
        startActivityForResult(i, ACTIVITY_CREATE);
    }
    
    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        super.onListItemClick(l, v, position, id);
        Intent i = new Intent(this, ReminderEditFragment.class);
        i.putExtra(RemindersDbAdapter.KEY_ROWID, id);
        startActivityForResult(i, ACTIVITY_EDIT); 
    }
 
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
        super.onActivityResult(requestCode, resultCode, intent);
        fillData();
    }
}

Пытался перенести полностью, но как раз метод return super.onMenuItemSelected(featureId, item); не работает в фрагменте...
0
mcGurov
3 / 3 / 0
Регистрация: 30.07.2013
Сообщений: 100
07.01.2014, 22:41  [ТС] #9
Вообщем решение нашлось...
Код Activity оставил без изменений, а код в фрагменте прописал следующий
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package planner;
 
import net.aquainter.aquabooster.ActivityHostFragment;
import android.app.Activity;
 
 
 
public class ReminderListFragment extends ActivityHostFragment {
    
 
      @Override
      protected Class<? extends Activity> getActivityClass() {
        return ReminderListActivity.class;
      }
      
 
    }

Всё гениальное просто...

Добавлено через 9 часов 29 минут
А также ActivityHostFragment
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewParent;
import android.view.Window;
 
/**
 * This is a fragment that will be used during transition from activities to fragments.
 */
public abstract class ActivityHostFragment extends LocalActivityManagerFragment {
 
  protected abstract Class<? extends Activity> getActivityClass();
 
  private final static String ACTIVITY_TAG = "hosted";
 
  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    final Class<? extends Activity> activityClass = getActivityClass();
    if (activityClass == null)
      return super.onCreateView(inflater, container, savedInstanceState);
 
    final Intent intent = new Intent(getActivity(), getActivityClass());
 
    @SuppressWarnings("deprecation")
    final Window w = getLocalActivityManager().startActivity(ACTIVITY_TAG, intent);
    final View wd = w != null ? w.getDecorView() : null;
 
    if (wd != null) {
      ViewParent parent = wd.getParent();
      if(parent != null) {
        ViewGroup v = (ViewGroup)parent;
        v.removeView(wd);
      }
 
      wd.setVisibility(View.VISIBLE);
      wd.setFocusableInTouchMode(true);
      if(wd instanceof ViewGroup) {
        ((ViewGroup) wd).setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS);
      }
    }
    return wd;
  }
}

И LocalActivityManagerFragment
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import android.app.LocalActivityManager;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
 
/**
 * This is a fragment that will be used during transition from activities to fragments.
 */
@SuppressWarnings("deprecation")
public class LocalActivityManagerFragment extends Fragment {
  private static final String TAG = LocalActivityManagerFragment.class.getSimpleName();
  private static final boolean DEBUG = false;
 
  private static final String KEY_STATE_BUNDLE = "localActivityManagerState";
 
  private LocalActivityManager mLocalActivityManager;
 
 
  protected LocalActivityManager getLocalActivityManager() {
    return mLocalActivityManager;
  }
 
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (DEBUG)
      Log.d(TAG, "onCreate(): " + getClass().getSimpleName());
 
    Bundle state = null;
    if (savedInstanceState != null) {
      state = savedInstanceState.getBundle(KEY_STATE_BUNDLE);
    }
 
    mLocalActivityManager = new LocalActivityManager(getActivity(), true);
    mLocalActivityManager.dispatchCreate(state);
  }
 
  @Override
  public void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putBundle(KEY_STATE_BUNDLE, mLocalActivityManager.saveInstanceState());
  }
 
  @Override
  public void onResume() {
    super.onResume();
    if (DEBUG)
      Log.d(TAG, "onResume(): " + getClass().getSimpleName());
    mLocalActivityManager.dispatchResume();
  }
 
  @Override
  public void onPause() {
    super.onPause();
    if (DEBUG)
      Log.d(TAG, "onPause(): " + getClass().getSimpleName());
    mLocalActivityManager.dispatchPause(getActivity().isFinishing());
  }    
 
  @Override
  public void onStop() {
    super.onStop();
    if (DEBUG)
      Log.d(TAG, "onStop(): " + getClass().getSimpleName());
    mLocalActivityManager.dispatchStop();
  }
 
  @Override
  public void onDestroy() {
    super.onDestroy();
    if (DEBUG)
      Log.d(TAG, "onDestroy(): " + getClass().getSimpleName());
    mLocalActivityManager.dispatchDestroy(getActivity().isFinishing());
  }
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.01.2014, 22:41
Привет! Вот еще темы с ответами:

Изменить из активити данные в фрагменте - Программирование Android
Есть Activity с PagerAdapter, в который грузятся фрагменты. В классе фрагмента данные берутся из БД и грузятся в ListView через адаптер...

Обработать событие onBackPressed во фрагменте - Программирование Android
У меня есть фрагмент который запускается через транзакцию и как можно обработать в нем нажатие кнопки back и выполнить определенные...

Обработка физической кнопки в фрагменте - Программирование Android
День добрый! Столкнулся с такой проблемой. Есть фрагмент: package com.example.navigationsample; import java.io.IOException; ...

Странное поведение RecyclerView во фрагменте - Программирование Android
Здравствуйте, возникла проблема с обновлением RecyclerView, точнее при создание адаптера в фрагменте, он создается после вызова метода...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Yandex
Объявления
07.01.2014, 22:41
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru