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

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

Войти
Регистрация
Восстановить пароль
 
aivengos
0 / 0 / 0
Регистрация: 17.04.2016
Сообщений: 8
#1

Падает приложение при нажатии меню - Программирование Android

17.04.2016, 18:38. Просмотров 137. Ответов 0
Метки нет (Все метки)

Eclips.при выборе меню любого к примеру НАЧАЛО в телефоне вылетает ошибка и приложение рушится.Сыр бор такой у меня есть активити MainActivity(MainActivity{activity_main.xml} ) из которого по кнопкам есть переход в активити SecondActivity (SecondActivity.java{activity_second.xml} ) а уже из меню SecondActivity(не кнопки) попадаем в активити DetailActivity где и длжен находится текст. В первой активности res/layout/activity_second.xml добавлен компонент ListView для отображения списка тем::

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context=".SecondActivity">
 
    <ListView
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:id="@+id/listView" />
 
</LinearLayout>
================================================================
Затем создана разметка для activity_detail.xml( Скрытие строки состояния и заголовка в Java-коде.)
XML
1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
 
    <WebView
        android:id="@+id/webView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</LinearLayout>
=====================================================================
Дизайн приложения готов.
теперь файл класса SecondActivity (Заголовки и тд.)Цель:Когда пользователь выбирает элемент списка, то мы получаем позицию выбранного элемента и запоминаем его. А затем запускаем вторую активность, в которую передаём номер позиции.
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
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class SecondActivity extends ActionBarActivity {
    //Создаем массив разделов:
    private String head_array[] = {
            "00. Начало",
            "01. лялялля ",
            "02. лялялялял",
            "03. лялялялля",
            "04. ляляллял.",
            "05. ялялялялял",
            "06. ялялялялял",
            "07. ялялялялялял",
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
 
        // Получим идентификатор ListView
        ListView listView = (ListView) findViewById(R.id.listView);
        //устанавливаем массив в ListView
        listView.setAdapter(
                new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, head_array));
        listView.setTextFilterEnabled(true);
        //Обрабатываем щелчки на элементах ListView:
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            public void onItemClick(AdapterView<?> a, View v, int position, long id) {
                Intent intent = new Intent();
                intent.setClass(SecondActivity.this, detailactivity.class);
                intent.putExtra("head", position);
                //запускаем вторую активность
                startActivity(intent);
            }
        });
    }
}
Затем в ресурсах создаем папку raw и туда кладем текстовые файлы n0.html n1.html (навсякий случай n2.txt и n3.txt для проверки но все равно крах приложения при выборе меню).
код для второй активности detailactivity.java
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
import android.content.Context;
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.util.Log;
import android.webkit.WebView;
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
 
public class detailactivity extends ActionBarActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
        setContentView(R.layout.activity_detail);
        WebView webView = (WebView) findViewById(R.id.webView);
 
        Intent intent = getIntent();
        //получаем строку и формируем имя ресурса
        String resName = "n" + intent.getIntExtra("head", 0);
        Log.i("name", resName);
        Context context = getBaseContext(); //получаем контекст
 
        //читаем текстовый файл из ресурсов по имени
        String text = readRawTextFile(context, getResources().getIdentifier(resName, "raw", "ru.example.carcar"));
 
        webView.loadDataWithBaseURL(null, text, "text/html", "en_US", null);
    }
 
    //читаем текст из raw-ресурсов
    public static String readRawTextFile(Context context, int resId)
    {
        InputStream inputStream = context.getResources().openRawResource(resId);
 
        InputStreamReader inputReader = new InputStreamReader(inputStream);
        BufferedReader buffReader = new BufferedReader(inputReader);
        String line;
        StringBuilder builder = new StringBuilder();
 
        try {
            while (( line = buffReader.readLine()) != null) {
                builder.append(line);
                builder.append("\n");
            }
        } catch (IOException e) {
            return null;
        }
        return builder.toString();
    }
}
мажет поглядите в чем ошибка или предложите свой более простой выход отобразить инормацию из меню. а то в телефоне по кнопке я перехожу во второе окно там вижу меню ..нажим на любое из меню вызывает ошибку приложения и как итог закрытие программы(crash)/
Вложения
Тип файла: rar carcar.rar (1.29 Мб, 0 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.04.2016, 18:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Падает приложение при нажатии меню (Программирование Android):

Падает скорость объектов на экране при нажатии - Программирование Android
Привет. У меня возникла проблема. Создал маленькую игру, На экране двигаются несколько объектов, а один из них двигается в зависимости от...

Падает приложение при чтении настроек - Программирование Android
Вот фрагмент моего кода: public void butCalculationElectric_Click(View v){ float c_to100 = sp.getFloat(&quot;to100&quot;,...

При нажатии на пункт меню скрыть его, и показать другой пункт меню - Программирование Android
Прошу помощи, как можно допустим при нажатии на пункт меню, его скрыть, и показать другой пункт меню? я делаю так : public boolean...

Закрыть приложение при нажатии на кнопку - Программирование Android
Народ сильно не ругайте, не могу вспомнить как что указать, чтобы при нажатии на кнопку приложение закрывалось? Добавлено через 25...

Вылетает приложение при нажатии на кнопку - Программирование Android
Здравствуйте, столкнулся с проблемой, что при нажатии на кнопку приложение вылетает. Программирую в Android Studio, кто нибудь сталкивался...

При нажатии на кнопку приложение закрывается - Программирование Android
Здравствуйте. Возникла проблема и вот не знаю как решить. Запускал приложение на эмуляторе, все нормально работало. Теперь установил на...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.04.2016, 18:38
Привет! Вот еще темы с ответами:

Фрагменты: приложение вылетает при 4-ом нажатии на кнопку - Программирование Android
Здравствуйте, в фрагменте есть кнопка, при нажатии на неё 3 раза приложение работает, на 4 вылетает, и пишет, что это из-за (View v =...

При долгом нажатии вывести контекстное меню - Программирование Android
Здравствуйте, подскажите, пожалуйста, как сделать так, чтобы при долгом нажатии на адресную строку, выводилось контекстное меню. Браузер...

При нажатии на пункт меню открыть новое активити - Программирование Android
Как сделать на андроид 4.0 чтобы при нажатии на пункт меню открывалось новое активити? Всплывающий Toast я смог сделать. но надо сделать...

Кнопка, при нажатии которой приложение закроется и откроется браузер с нужным сайтом - Программирование Android
Как сделать так что бы при нажатии приложение закрывалось и открывался браузер с нужным сайтом?


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

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

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