Android Studio Две кнопки на две страницы

Доброе утро,

Быстрый запрос кодирования, который я хотел бы выдвинуть.

Я получил задание создать приложение на Android Studio с двумя кнопками, каждая из которых должна загружать новые страницы при нажатии.

Глава из наших книг объясняет, как сделать это с помощью одной кнопки, но я предполагаю, что может быть другая настройка с двумя кнопками?

В любом случае, это всего лишь второе задание в нашем классе, так что я не очень далек от понимания того, как все это работает; это и класс является курсом независимого обучения, поэтому я преподаю сам. Не всегда самое простое.

Во всяком случае, вот что у меня есть:

MainActivity.java

package com.example.thelatestmusicscene;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button button = (Button) findViewById(R.id.buttonOne);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(MainActivity.this, MusicNewsOne.class));
            }
        });

        Button button2 = (Button) findViewById(R.id.buttonTwo);
        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(MainActivity.this, MusicNewsTwo.class));
            }
        });
    }
}

Я считаю, что это единственный файл, имеющий отношение к моей проблеме, но я могу опубликовать и другие, если вам нужно их увидеть.

Первая кнопка работает отлично, но когда я пытаюсь использовать вторую кнопку, приложение перестает работать. Я видел несколько объяснений в Интернете, но те немногие, которые я нашел о загрузке других страниц, дают мне кучу ошибок в моем коде.

Примечание. В книге показано, как это сделать, но я полностью за альтернативные методы.

Все остальное для этого приложения сделано, это просто ссылка на вторую страницу java, на которой я запинаюсь. Если вы знаете лучший способ выложить код, я весь в ушах, или если бы вы могли связать меня с ресурсом, который мог бы меня научить, я был бы признателен.

Хорошо, это будет запутанная часть. Когда я загрузил Android Studio для класса, я так и не смог запустить ни один из эмуляторов. Это была проблема, которую я также опубликовал, но на сегодняшний день до сих пор не получил ответа. Если у вас есть решение или вы хотите увидеть подробности того, что я пробовал, перейдите сюда: https://superuser.com/questions/1394568/android-studio-and-haxm-установка

В конце концов, я мог писать код, но не мог его тестировать. Однако я нашел способ запускать приложения на своем смартфоне, чтобы проверить, работают ли они. Разрешить Android Studio создать файл APK, а затем позволить моему телефону запустить приложение. Теперь… что касается ошибок. Их нет. Android Studio не вернется ни с чем. Что касается его, то все в порядке. Когда я загружаю приложение на свой телефон и нажимаю вторую кнопку, приложение закрывается, и я получаю сообщение «К сожалению, nameOfApp остановлен».

И вот я нахожу себя.

Вот XML (полагаю, вы имеете в виду AndroidManifest.xml)

<?xml version = "1.0" encoding = "utf-8"?>
<manifest xmlns:android = "http://schemas.android.com/apk/res/android"
package = "com.example.thelatestmusicscene">

<application
    android:allowBackup = "true"
    android:icon = "@mipmap/ic_launcher"
    android:label = "@string/app_name"
    android:roundIcon = "@mipmap/ic_launcher_round"
    android:supportsRtl = "true"
    android:theme = "@style/AppTheme">
    <activity android:name = ".MusicNewsTwo">
    </activity>
    <activity android:name = ".MusicNewsOne" />
    <activity android:name = ".MainActivity">
        <intent-filter>
            <action android:name = "android.intent.action.MAIN" />

            <category android:name = "android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

Мне нужно немного поспать, но я попытаюсь сегодня получить отчет о сбое со своего телефона, если смогу.

Пожалуйста, поделитесь трассировкой стека сбоя.

Henry 24.01.2019 11:31

Привет, пожалуйста, поделитесь трассировкой стека сбоя

JideGuru 24.01.2019 11:36
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
269
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Bro there are two ways to do this, start a new Activity like you are doing, and other is By Using one activity you can post the fragments on the same activity as much as you want i.e 1 ,2 3 and so on.here is the link for fragments, but you are very much biggner ill suggest you to start with the actitvity and learn about the Activity life cycle. you can find here . moreover tell me what the error you are getting, To find the error see a the bottom of android studio the option (Logcat) click on it . and see the error and past it in the comment.

Несколько заметок

  • Возможно, вам потребуется предоставить журнал / трассировку стека / сообщение об ошибке (чтобы мы знали, какое решение для этого)
  • Вам также может потребоваться предоставить нам макет или файл .xml.

Что могло пойти не так

Одна из часто встречающихся проблем:

Предполагая, что вы скопировали его только из своего класса, вы могли столкнуться с ошибкой, говорящей о том, что ваш MusicNewsTwo.class не объявлен в AndroidManifest.xml, сделайте следующее:

Какое может быть возможное решение

<application
   android:label = "Example APp"
   android:supportsRtl = "true"
   android:theme = "@style/AppTheme">

   <activity
      android:name = "package.path.to.MusicNewsOne">

      <intent-filter>
         <action android:name = "android.intent.action.MAIN" />
         <category android:name = "android.intent.category.LAUNCHER" />
      </intent-filter>
   </activity>

   <!--  Add this activity if missing -->
   <activity
      android:name = "package.path.to.MusicNewsTwo"/>
</application>

Я обновлю свой ответ, если вы примете во внимание раздел Несколько заметок моего ответа, в противном случае, если я получил ваш ответ, напишите уже с этим, прокомментируйте.

Ответ принят как подходящий

Брат, ваш файл MainActivity.java имеет правильный код. Пожалуйста, проверьте имя кнопки в файле xml и java и проверьте файл манифеста либо MusicNewsTwo, добавленный как активность.

И убедитесь, что у вас есть файлы java и xml в правильном месте.

Обнаружил проблему в самом телефоне. Оказывается, это была ошибка разрешения на загрузку сторонних приложений; мой код был на самом деле идеальным. Спасибо за все предложения.

Я думаю, что IDs из views в layout : "activity_main" отличаются от тех, которые вы используете в файле MainActivity.java.

Другие вопросы по теме