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

Spinner и NavigationDrawer - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Можно ли читать БД из переводчика от гугла без рута http://www.cyberforum.ru/android-dev/thread1514525.html
Нужно получить историю переводов. Пакет - com.google.android.apps.translate , бд - historydb_sql
Android RecyclerView закрасить красным цветом пространство удаленного элемента Здравствуйте! Пытаюсь создать свой аниматор для RecyclerView... Для этого спер написал базовый класс (дубликат DefaultItemAnimator) И наследуясь от него, пытаюсь переопределить на слайд-анимацию public class SlideItemAnimator extends BaseItemAnimator { private RecyclerView recyclerView; private int color; public SlideItemAnimator(RecyclerView recyclerView, int color) { ... http://www.cyberforum.ru/android-dev/thread1514409.html
Как включить неизвестные источники на андроид? Android
Здравствуйте уважаемые форумчане. Я пытаюсь установить настройки «неизвестные источники» на андроид 4.4.2 (Bravis np101). Значит, захожу в Настройки – Безопасность - Неизвестные источники – ставлю галочку, потом система пишет - «Ваши личные данные и данные планшета ПК…» - ставлю «ОК» - выхожу. При повторном входе в меню «Безопасность» галочка напротив «Неизвестных источники» уже не установлена,...
Android Режется картинка
Есть код: image = context.getResources().getDrawable(R.drawable.background20); image.setBounds(0, 0, image.getIntrinsicWidth(), image.getIntrinsicHeight()); При этом картинка режется, подскажите, чтобы картинка не резалась по краям
Android В геттере не работает SharedPreferences http://www.cyberforum.ru/android-dev/thread1514349.html
в главной активности происходит действие игры, игра разбита на раунды, в зависимости от номера раунда класс создает раунд со своими особенностями, счетчик раундов находится в главной активности и класс должен от главной активности принимать номер раунда. номер раунда должен сохраняться, пытаюсь использовать SharedPreferences, но в геттере ошибка, полдня читаю про SharedPreferences, вроде должно...
Android Libgdx или android studio для создания текстового симулятора Здравствуйте. В планах создать текстовый симулятор для андроида на подобии "Бомжары". что лучше для этого использовать: возможности android studio или движок libgdx, и почему? Как я считаю, делать на libdgx легче, но для развития лучше уметь создавать не только игры, а еще и приложения через android studio. Что для симулятора будет лучше? подробнее

Показать сообщение отдельно
poy4eg
0 / 0 / 0
Регистрация: 21.03.2015
Сообщений: 40

Spinner и NavigationDrawer - Android

14.08.2015, 12:49. Просмотров 451. Ответов 8
Метки (Все метки)

Доброго времени суток!
Ситуевина следующая - надо реализовать спинер в экшнбаре + NavigationDrawer .. перерыл все что можно, но всегда натыкаюсь на одну и ту же беду, которую не могу решить...

Кликните здесь для просмотра всего текста

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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
import android.app.ActionBar;
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.SearchManager;
import android.content.Intent;
import android.content.res.Configuration;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.util.Log;
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.Window;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.SpinnerAdapter;
import android.widget.Toast;
 
import java.lang.ref.WeakReference;
import java.util.Locale;
 
public class MainActivity extends Activity implements ActionBar.OnNavigationListener {
    private DrawerLayout mDrawerLayout;
    private ListView mDrawerList;
    public ActionBarDrawerToggle mDrawerToggle;
 
    private CharSequence mDrawerTitle;
    private CharSequence mTitle;
    private String[] mPlanetTitles;
    ActionBar actionBar;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_ACTION_BAR);
        setContentView(R.layout.activity_main);
 
        actionBar = getActionBar();
 
 
        SpinnerAdapter mSpinnerAdapter = ArrayAdapter.createFromResource(this, R.array.planets_array,
                R.layout.support_simple_spinner_dropdown_item);
//        actionBar.setDisplayShowTitleEnabled(false);
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
        getActionBar().setListNavigationCallbacks(mSpinnerAdapter,this);
 
        //mTitle = mDrawerTitle = getTitle();
        mPlanetTitles = getResources().getStringArray(R.array.planets_array);
        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
        mDrawerList = (ListView) findViewById(R.id.left_drawer);
 
        // mDrawerList.setBackgroundColor(Color.WHITE);
        // set a custom shadow that overlays the main content when the drawer opens
//        mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
        // set up the drawer's list view with items and click listener
 
        mDrawerList.setAdapter(new ArrayAdapter<String>(this,
                R.layout.drawer_list_item, mPlanetTitles));
 
        mDrawerList.setOnItemClickListener(new DrawerItemClickListener());
 
        // enable ActionBar app icon to behave as action to toggle nav drawer
        getActionBar().setDisplayHomeAsUpEnabled(true);
        getActionBar().setHomeButtonEnabled(true);
 
        // ActionBarDrawerToggle ties together the the proper interactions
        // between the sliding drawer and the action bar app icon
        mDrawerToggle = new ActionBarDrawerToggle(
                this,                  /* host Activity */
                mDrawerLayout,         /* DrawerLayout object */
//                R.drawable.ic_drawer,  /* nav drawer image to replace 'Up' caret */
                R.string.drawer_open,  /* "open drawer" description for accessibility */
                R.string.drawer_close  /* "close drawer" description for accessibility */
        ) {
            public void onDrawerClosed(View view) {
                getActionBar().setTitle(mTitle);
                invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
            }
 
            public void onDrawerOpened(View drawerView) {
                getActionBar().setTitle(mDrawerTitle);
                invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
            }
        };
        mDrawerLayout.setDrawerListener(mDrawerToggle);
 
        if (savedInstanceState == null) {
            selectItem(0);
        }
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.main, menu);
        return super.onCreateOptionsMenu(menu);
    }
 
    /* Called whenever we call invalidateOptionsMenu() */
    @Override
    public boolean onPrepareOptionsMenu(Menu menu) {
        // If the nav drawer is open, hide action items related to the content view
        boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList);
        menu.findItem(R.id.action_settings).setVisible(!drawerOpen);
 
        return super.onPrepareOptionsMenu(menu);
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // toggle nav drawer on selecting action bar app icon/title
        if (mDrawerToggle.onOptionsItemSelected(item)) {
            return true;
        }
        // Handle action bar actions click
        switch (item.getItemId()) {
            case R.id.action_settings:
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }
 
    /* The click listner for ListView in the navigation drawer */
    private class DrawerItemClickListener implements ListView.OnItemClickListener {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            selectItem(position);
        }
    }
 
    private void selectItem(int position) {
 
 
        ActionBar actionBar =getActionBar();
        actionBar.setDisplayHomeAsUpEnabled(true);
        Fragment fragment = new PlanetFragment();
        Bundle args = new Bundle();
        args.putInt(PlanetFragment.ARG_PLANET_NUMBER, position);
        fragment.setArguments(args);
 
        FragmentManager fragmentManager = getFragmentManager();
        fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit();
 
        // update selected item and title, then close the drawer
 
        mDrawerList.setItemChecked(position, true);
        //  setTitle(mPlanetTitles[position]);
        mDrawerLayout.closeDrawer(mDrawerList);
 
 
    }
 
    @Override
    public void setTitle(CharSequence title) {
        mTitle = title;
        //getActionBar().setTitle(mTitle);
    }
 
    /**
     * When using the ActionBarDrawerToggle, you must call it during
     * onPostCreate() and onConfigurationChanged()...
     */
 
    @Override
    protected void onPostCreate(Bundle savedInstanceState) {
        super.onPostCreate(savedInstanceState);
        // Sync the toggle state after onRestoreInstanceState has occurred.
        mDrawerToggle.syncState();
    }
 
    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        // Pass any configuration change to the drawer toggls
        mDrawerToggle.onConfigurationChanged(newConfig);
    }
 
    /**
     * Fragment that appears in the "content_frame", shows a planet
     */
    public static class PlanetFragment extends Fragment {
        public static final String ARG_PLANET_NUMBER = "planet_number";
        private static WeakReference<MainActivity> mTarget;
 
 
 
 
        @Override
        public void onActivityCreated(Bundle savedInstanceState) {
            super.onActivityCreated(savedInstanceState);
 
            if(mTarget!=null)
            {
                MainActivity target = mTarget.get();
                ActionBar actionBar = getActivity().getActionBar();
                actionBar.setDisplayHomeAsUpEnabled(true);
                //actionBar.setTitle("Fragment");
                //target.mDrawerToggle.setDrawerIndicatorEnabled(false);
            }
            else
            {
                Log.i("............", "Null");
            }
        }
 
        @Override
        public void onAttach(Activity activity) {
            // TODO Auto-generated method stub
            super.onAttach(activity);
        }
 
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            mTarget = new WeakReference<MainActivity>( (MainActivity) getActivity());
            View rootView = inflater.inflate(R.layout.fragment_planet, container, false);
 
            int i = getArguments().getInt(ARG_PLANET_NUMBER);
            String planet = getResources().getStringArray(R.array.planets_array)[i];
 
            int imageId = getResources().getIdentifier(planet.toLowerCase(Locale.getDefault()),
                    "drawable", getActivity().getPackageName());
            ((ImageView) rootView.findViewById(R.id.image)).setImageResource(imageId);
            // getActivity().setTitle(planet);
            return rootView;
        }
    }
 
    @Override
    public boolean onNavigationItemSelected(int itemPosition, long itemId) {
        // TODO Auto-generated method stub
        Toast.makeText(getApplicationContext(), "text", Toast.LENGTH_LONG).show();
        return true;
    }
}


Вылет на строке
Java
1
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
с нульпоинтом java.lang.NullPointerException
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru