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

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

Восстановить пароль Регистрация
 
aivengos
0 / 0 / 0
Регистрация: 17.04.2016
Сообщений: 8
17.04.2016, 18:38     Падает приложение при нажатии меню #1
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
Падает приложение при чтении настроек Android
Кнопка, при нажатии которой приложение закроется и откроется браузер с нужным сайтом Android
Android Падает скорость объектов на экране при нажатии
Android При нажатии на кнопку приложение закрывается
Вылетает приложение при нажатии на кнопку Android
Как закрыть приложение при нажатии кнопки back или home? Basic4Android
Android Фрагменты: приложение вылетает при 4-ом нажатии на кнопку
Android Закрыть приложение при нажатии на кнопку
Android Приложение с ListView падает с NullPointerException

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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