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

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

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

На правильном ли я пути?
Миниатюры
Создание RSS на базе Material Design  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.07.2015, 16:49     Создание RSS на базе Material Design
Еще ссылки по теме:

Android Как подключить com.android.support:design в Eclipse
Android Material Design. Можно ли экспортировать Skecth в андроид и что делать дальше?
Android Material Drawer
Как поставить тему Material? Android
Приложение-анкета по канонам material design Android

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

Или воспользуйтесь поиском по форуму:
NewSergik
1 / 1 / 0
Регистрация: 11.07.2015
Сообщений: 15
23.07.2015, 16:49  [ТС]     Создание RSS на базе Material Design #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;
                    }
                });
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Yandex
Объявления
23.07.2015, 16:49     Создание RSS на базе Material Design
Ответ Создать тему
Опции темы

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