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

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

Восстановить пароль Регистрация
Другие темы раздела
Android Публичный ключ для платного приложения http://www.cyberforum.ru/android-dev/thread1059365.html
Недавно увидел что Янедекс открыл свой googleplay. и что меня порадовало там бесплатная регистрация. Хочу разместить платное приложение - я так понял что надо получить публичный ключ - получил. И далее встроить его в приложение - как это сделать, насколько надежная защита. Это лучше чем привязка к ИМЕЙ? Как это работает?
Android Передача параметров по ссылке Допустим, есть ф-я: int foo() { } Хотелось бы чтобы она изменяла значение, передаваемое ей. Например: http://www.cyberforum.ru/android-dev/thread1059335.html
Android Не воспроизводятся звуки с внутренней памяти
Эксцепшин: "prepare failed. status=0x1" Пермишины есть, картинки с той же внутренней памяти отображаются, и на телефоне звуки работают, а на планшете такой эксцепшин вылазит. Помогите. На SO ничего полезного не нашел..(
Android Работа с ListView
Нужно что бы при нажатии на один элемент в первом ListView он копировался во второй ListView причём многократно.
Android Работает в Eclipce но не работает на телефоне http://www.cyberforum.ru/android-dev/thread1059237.html
учусь по урокам вот из этой серии: http://www.youtube.com/watch?v=VrDGf5h6iwA в эклипсе всё работает норм но вот гружу на свой телефон (Gallary S III) Даже не вижу фаил. как целивую версию выбераю версию андройда 2.3.3 Virtual device с разрешениием эерана 320 на 480 мне надо другие настройки задать или проблемма не в этом? И ещё когда на AIR писал там для каждого приложения...
Android Как передать ссылку на элемент активити в другой класс чтобы провести операции надо ним Такая задача сложилась. есть активити MainActivity: public class MainActivity extends Main {...} в нем есть элемент LinearLayout - rootLv. Есть класс Main, он представляет собой набор констант и методов. в нем есть такой метод: void addImg(){ подробнее

Показать сообщение отдельно
mcGurov
 Аватар для mcGurov
3 / 3 / 0
Регистрация: 30.07.2013
Сообщений: 98
03.01.2014, 20:43  [ТС]     MenuItemSelected не работает в фрагменте
Давайте обобщу свой вопрос, итак есть 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); не работает в фрагменте...
 
Текущее время: 09:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru