Как я могу переключаться с одного занятия на другое, когда нажимаю кнопку - PullRequest
0 голосов
/ 21 октября 2018

Я делаю учебное пособие по изучению сборки приложения для Android с Kotlin, но я обнаружил проблему, и я отлаживал, удалял код, добавлял код обратно и я в облаке, чтобы найти, в чем проблема с этим

android.content.ActivityNotFoundException: невозможно найти явный класс активности {com.application.todolist / android.support.design.button.MaterialButton};Вы объявили об этом в своем файле AndroidManifest.xml?

Мой AndroidManifest.xml

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

    <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"
            tools:ignore="GoogleAppIndexingWarning">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>

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

</manifest>

Мой код_действия.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:background="@color/colorPrimary"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">

        <LinearLayout
            android:orientation="vertical"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:paddingLeft="24dp"
            android:paddingRight="24dp"
            android:gravity="center">

            <TextView
                android:id="@+id/intro_welcome"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:textSize="26sp"
                android:textColor="@color/colorText"
                android:text="@string/intro_text_welcome"/>

            <!-- create account button -->
            <android.support.design.button.MaterialButton
                    android:id="@+id/CreateAccount"
                    android:layout_marginTop="30dp"
                    android:layout_gravity="center"
                    android:padding="15dp"
                    android:textColor="#FFF"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:text="@string/create_account"
                    app:cornerRadius="50dp"
                    android:drawableRight="@drawable/ic_arrow_forward_black_24dp"
                    android:textSize="20sp"/>

            <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="25dp"
                    android:gravity="center"
                    android:textSize="16sp"
                    android:textColor="@color/colorText"
                    android:text="@string/have_account"/>

            <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="25sp"
                    android:textColor="@color/colorText"
                    android:text="@string/policy_and_terms"/>

    </LinearLayout>

</android.support.design.widget.CoordinatorLayout>

My activity_create_account.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/colorPrimary"
    tools:context=".CreateAccount">

    <LinearLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="511dp"
            android:layout_gravity="center_horizontal"
            android:paddingLeft="24dp"
            android:paddingRight="24dp"
            android:gravity="center">

        <TextView
                android:id="@+id/intro_welcome"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:gravity="left"
                android:textSize="26sp"
                android:layout_marginBottom="24dp"
                android:textColor="@color/colorText"
                android:text="@string/ask_for_name"/>

        <!-- Name label -->
        <android.support.design.widget.TextInputLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="14dp"
                android:layout_marginTop="14dp"
                style="@style/Widget.MaterialComponents.TextInputLayout.FilledBox"
                app:hintAnimationEnabled="true">

            <android.support.design.widget.TextInputEditText
                    android:id="@+id/input_name"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:inputType="text"
                    android:drawableLeft="@drawable/ic_account_box_black_24dp"
                    android:hint="@string/first_name"/>
        </android.support.design.widget.TextInputLayout>


        <!-- Last name label -->
        <android.support.design.widget.TextInputLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="14dp"
                android:layout_marginTop="14dp"
                style="@style/Widget.MaterialComponents.TextInputLayout.FilledBox"
                app:hintAnimationEnabled="true">

            <android.support.design.widget.TextInputEditText
                    android:id="@+id/input_lastname"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:inputType="text"
                    android:hint="@string/last_name"/>

        </android.support.design.widget.TextInputLayout>

        <android.support.design.widget.FloatingActionButton
                android:id="@+id/step_2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="end|bottom"
                android:src="@drawable/ic_arrow_forward_black_24dp"
                android:layout_margin="16dp"
                app:fabSize="normal"/>
    </LinearLayout>

</android.support.design.widget.CoordinatorLayout>

My MainActivity.kt

package com.application.todolist

import android.content.Intent
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*
import android.support.design.button.MaterialButton
import android.util.Log

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        supportActionBar?.hide()

        val btnFirstStep : MaterialButton = findViewById(R.id.CreateAccount)

        btnFirstStep.setOnClickListener {
            val intent = Intent(
                this,
                CreateAccount::class.java
            )
            startActivity(intent)
            Log.i("MainActivity", "Button was clicked")
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 21 октября 2018

Решение: Попробуйте использовать библиотеку Material вместо использования библиотеки Design для MaterialButton, как показано ниже:

Вместо использования:

<android.support.design.button.MaterialButton
                android:id="@+id/CreateAccount"
                android:layout_marginTop="30dp"
                android:layout_gravity="center"
                android:padding="15dp"
                android:textColor="#FFF"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="@string/create_account"
                app:cornerRadius="50dp"
                android :drawableRight="@drawable/ic_arrow_forward_black_24dp"
                android:textSize="20sp"/>

Использование:

<com.google.android.material.button.MaterialButton
                android:id="@+id/CreateAccount"
                android:layout_marginTop="30dp"
                android:layout_gravity="center"
                android:padding="15dp"
                android:textColor="#FFF"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="@string/create_account"
                app:cornerRadius="50dp"
                android :drawableRight="@drawable/ic_arrow_forward_black_24dp"
                android:textSize="20sp"/>

Попробуйте.Надеюсь, это поможет.

0 голосов
/ 21 октября 2018

Ошибка связана с отсутствующей активностью, но также упоминает android.support.design.button.MaterialButton, что странно.Также странно, что идентификатор MaterialButton, который вы нажимаете, чтобы открыть действие, равен CreateAccount, так же, как имя класса действия, которое вы хотите открыть.Возможно, измените идентификатор кнопки и попробуйте снова.

...