Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
NewSergik
1 / 1 / 0
Регистрация: 11.07.2015
Сообщений: 15
#1

Создание RSS на базе Material Design

11.07.2015, 21:53. Просмотров 1036. Ответов 20
Метки нет (Все метки)

Добрый день!
Подсел на тему Материал Дизайн. Уж очень она мне понравилась. Сам никогда не разрабатывал приложения под андроид, а тут вдруг решил попробовать свои знания. По примерам работ в других сферах получалось разобраться и "смастерить" свое чудо По аналогии всегда ведь легче, даже если и не знаешь ничего. Но это не суть.
Проблема меня постигла, когда решил в существующий пример воткнуть RSS-читалку.
По картинке (взял из интернета): Сейчас у меня есть только пункт 1. (меню с разделами). Пункт 2 - отображает список новостей по тематикам. Пункт 3 - открывает одну новость в выбранной тематике.
Правильно ли я понимаю, что для реализации двух других пунктов мне потребуются:
MainActivity.java - уже есть. Главная страница приложения.
ListActivity.java - будет открываться при выборе раздела в списке навигации (п.2).
DetailActivity.java - будет открывать подробную информацию по выбранной новости (п.3).
Handler.java - создам для обработки rss с сайта.

На правильном ли я пути?
0
Миниатюры
Создание RSS на базе Material Design  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.07.2015, 21:53
Ответы с готовыми решениями:

Material design для api10
Доброй ночи! Пишу приложения с требованиями по build target API 10. Хотелось...

Material Design. Dialog с текстом
Всем привет. Подскажите пожалуйста, есть ли аналог AlertDialog в Material...

Правильное использование Material Design
Добрый день! Как правильно использовать MAterial Design? Android 4.0 -...

Приложение-анкета по канонам material design
Здравствуйте. Начинаю постигать андроид. До этого юзабельных приложений не...

Как создать вкладки Tabs c ViewPager material design
Добрый день форумчане! Нужна ваша помощь! Как создать так называемый Tabs...

20
NewSergik
1 / 1 / 0
Регистрация: 11.07.2015
Сообщений: 15
23.07.2015, 16:49  [ТС] #21
Цитата Сообщение от Rube Посмотреть сообщение
Я тоже типа того пишу сейчас, но качаю страницу, выкидываю лишнее, форматирую немножко и показываю в vebview.
Тогда начну сначала. Прошу дочитать до конца. Потом буду короче писать Пока пытался разобраться с RSS, заметил главную ошибку.
Начальный шаблон был взят здесь
У меня есть список разделов (добавил их самостоятельно), которые отображены в activity_main.xml, а точнее в Navigation Drawer Menu. В шапке header я добавил ссылки на требуемые мне ресурсы (почта/смс/звонок/соцсеть).
При нажатии на один из разделов открывалась новая Activity №2. Это и есть грубая на мой взгляд ошибка.
При нажатии на раздел у меня не должно быть переключения между Activity. У меня должно закрыться Меню и список ссылок раздела должен отобразиться на экране MainActivity - главной активити.

Как пример, приложение ЯндексПочта. Нажимаем входящие/исходящие - открывается главное MainActivity. Нажимаем Настройки - открывается новое активити SettingActivity.

Сейчас в приложении реализована такая функция: при нажатии на раздел выводится текстовое название этого раздела на экране MainActivity.
Теперь вопрос. Как мне прикрутить к каждому разделу RSS ленту? Или правильнее, как сделать так, чтобы при нажатии на раздел открывались ссылки на "новости" этого раздела?

Повторюсь, я копировал RSS клиента вот здесь. И он удачно вписался в шаблон, но я запнулся на парсинге. И это уже вопрос дальнейшей разработки.

Это MainActivity.java
Javascript
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
package ru.gp.test8;
 
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
 
public class MainActivity extends AppCompatActivity implements OnClickListener {
 
    DrawerLayout drawerLayout;
    Toolbar toolbar;
    ActionBar actionBar;
    TextView textView;
    ImageView imageSms;
    ImageView imageEmail;
    ImageView imageVk;
    ImageView imageTel;
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        imageSms = (ImageView) findViewById(R.id.imageSms);
        imageEmail = (ImageView) findViewById(R.id.imageEmail);
        imageVk = (ImageView) findViewById(R.id.imageVk);
        imageTel = (ImageView) findViewById(R.id.imageTel);
 
        imageSms.setOnClickListener(this);
        imageEmail.setOnClickListener(this);
        imageVk.setOnClickListener(this);
        imageTel.setOnClickListener(this);
 
        toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
 
        actionBar = getSupportActionBar();
        actionBar.setHomeAsUpIndicator(R.drawable.ic_menu_white_24dp);
        actionBar.setDisplayHomeAsUpEnabled(true);
        /*actionBar.setLogo(R.drawable.ic_menu_logo); */
 
        drawerLayout = (DrawerLayout) findViewById(R.id.navigation_drawer_layout);
 
        NavigationView navigationView = (NavigationView) findViewById(R.id.navigation_view);
        if (navigationView != null) {
            setupNavigationDrawerContent(navigationView);
        }
    }
 
    @Override
    public void onClick(View v) {
        Intent Intent2;
        switch (v.getId()) {
            case R.id.imageSms:
                Intent2 = new Intent(Intent.ACTION_VIEW);
                Intent2.putExtra("sms_body", "");
                Intent2.putExtra("address", "+7920");
                Intent2.setType("vnd.android-dir/mms-sms");
                startActivity(Intent2);
                break;
            case R.id.imageEmail:
                Intent2 = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("mailto","gp@gmail.com", null));
                Intent2.putExtra(Intent.EXTRA_SUBJECT, "");
                Intent2.putExtra(Intent.EXTRA_TEXT, "");
                startActivity(Intent2);
                break;
            case R.id.imageVk:
                Intent2= new Intent(Intent.ACTION_VIEW, Uri.parse("https://vk.com"));
                startActivity(Intent2);
                break;
            case R.id.imageTel:
                Intent2= new Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + "+7920"));
                startActivity(Intent2);
                break;
        }
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                drawerLayout.openDrawer(GravityCompat.START);
                return true;
        }
        return super.onOptionsItemSelected(item);
    }
 
    private void setupNavigationDrawerContent(NavigationView navigationView) {
        navigationView.setNavigationItemSelectedListener(
                new NavigationView.OnNavigationItemSelectedListener() {
                    @Override
                    public boolean onNavigationItemSelected(MenuItem menuItem) {
                        textView = (TextView) findViewById(R.id.textView);
                        switch (menuItem.getItemId()) {
                            case R.id.item_navigation_drawer_inbox:
                                menuItem.setChecked(true);
                                textView.setText(menuItem.getTitle());
                                drawerLayout.closeDrawer(GravityCompat.START);
                                return true;
 
                            case R.id.item_Auto:
                                menuItem.setChecked(true);
                                textView.setText(menuItem.getTitle());
                                drawerLayout.closeDrawer(GravityCompat.START);
                                return true;
                            case R.id.item_Magazin:
                                menuItem.setChecked(true);
                                textView.setText(menuItem.getTitle());
                                drawerLayout.closeDrawer(GravityCompat.START);
                                return true;
                            case R.id.item_Razvlech:
                                menuItem.setChecked(true);
                                textView.setText(menuItem.getTitle());
                                drawerLayout.closeDrawer(GravityCompat.START);
                                return true;
                            case R.id.item_Hobbi:
                                menuItem.setChecked(true);
                                textView.setText(menuItem.getTitle());
                                drawerLayout.closeDrawer(GravityCompat.START);
                                return true;
                            case R.id.item_Deti:
                                menuItem.setChecked(true);
                                textView.setText(menuItem.getTitle());
                                drawerLayout.closeDrawer(GravityCompat.START);
                                return true;
                            case R.id.item_Krasota:
                                menuItem.setChecked(true);
                                textView.setText(menuItem.getTitle());
                                drawerLayout.closeDrawer(GravityCompat.START);
                                return true;
                            case R.id.item_Sport:
                                menuItem.setChecked(true);
                                textView.setText(menuItem.getTitle());
                                drawerLayout.closeDrawer(GravityCompat.START);
                                return true;
                            case R.id.item_Turism:
                                menuItem.setChecked(true);
                                textView.setText(menuItem.getTitle());
                                drawerLayout.closeDrawer(GravityCompat.START);
                                return true;
                            case R.id.item_Kultura:
                                menuItem.setChecked(true);
                                textView.setText(menuItem.getTitle());
                                drawerLayout.closeDrawer(GravityCompat.START);
                                return true;
                            case R.id.item_Medicina:
                                menuItem.setChecked(true);
                                textView.setText(menuItem.getTitle());
                                drawerLayout.closeDrawer(GravityCompat.START);
                                return true;
                            case R.id.item_Nedvigimost:
                                menuItem.setChecked(true);
                                textView.setText(menuItem.getTitle());
                                drawerLayout.closeDrawer(GravityCompat.START);
                                return true;
                            case R.id.item_Stroyka:
                                menuItem.setChecked(true);
                                textView.setText(menuItem.getTitle());
                                drawerLayout.closeDrawer(GravityCompat.START);
                                return true;
                            case R.id.item_Obrazovanie:
                                menuItem.setChecked(true);
                                textView.setText(menuItem.getTitle());
                                drawerLayout.closeDrawer(GravityCompat.START);
                                return true;
                            case R.id.item_Uslugi:
                                menuItem.setChecked(true);
                                textView.setText(menuItem.getTitle());
                                drawerLayout.closeDrawer(GravityCompat.START);
                                return true;
                            case R.id.item_Reklama:
                                menuItem.setChecked(true);
                                textView.setText(menuItem.getTitle());
                                drawerLayout.closeDrawer(GravityCompat.START);
                                return true;
                            case R.id.item_Finans:
                                menuItem.setChecked(true);
                                textView.setText(menuItem.getTitle());
                                drawerLayout.closeDrawer(GravityCompat.START);
                                return true;
                            case R.id.item_Rabota:
                                menuItem.setChecked(true);
                                textView.setText(menuItem.getTitle());
                                drawerLayout.closeDrawer(GravityCompat.START);
                                return true;
                            case R.id.item_navigation_drawer_starred:
                                menuItem.setChecked(true);
                                textView.setText(menuItem.getTitle());
                                drawerLayout.closeDrawer(GravityCompat.START);
                                return true;
                            case R.id.item_navigation_drawer_sent_mail:
                                menuItem.setChecked(true);
                                textView.setText(menuItem.getTitle());
                                drawerLayout.closeDrawer(GravityCompat.START);
                                return true;
                            case R.id.item_navigation_drawer_drafts:
                                menuItem.setChecked(true);
                                textView.setText(menuItem.getTitle());
                                drawerLayout.closeDrawer(GravityCompat.START);
                                return true;
                            case R.id.item_navigation_drawer_settings:
                                menuItem.setChecked(true);
                                textView.setText(menuItem.getTitle());
                                Toast.makeText(MainActivity.this, "Launching " + menuItem.getTitle().toString(), Toast.LENGTH_SHORT).show();
                                drawerLayout.closeDrawer(GravityCompat.START);
                                Intent intent = new Intent(MainActivity.this, FeedListActivity.class);
                                startActivity(intent);
                                return true;
                            /* case R.id.item_navigation_drawer_help_and_feedback:
                                menuItem.setChecked(true);
                                Toast.makeText(MainActivity.this, menuItem.getTitle().toString(), Toast.LENGTH_SHORT).show();
                                drawerLayout.closeDrawer(GravityCompat.START);
                                return true; */
                        }
                        return true;
                    }
                });
    }
}
0
23.07.2015, 16:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.07.2015, 16:49

Material Design. Можно ли экспортировать Skecth в андроид и что делать дальше?
Я хочу реализовать красивый дизайн, я нашел scetch ресурс,его можно...

Создание RSS реадера
Я хочу прикрутить RSS ленту к pull to refresh Тоесть не выводить на екран всю...

Material Drawer
Здравствуйте, помогите, пожалуйста, разобраться: 1) создал тулбар с менюшкой,...


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

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Опции темы

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