java - 所有带有 Intent 的按钮都不起作用

标签 java android xml android-layout android-intent

目标:
当我按下其中一个按钮时,您应该被转到下一个 Intent 页面。

问题:
它仅适用于名为“Activity 1”的按钮,但不适用于其余按钮,尽管您对按钮“Activity 1”、“Activity 2”和“Activity 3”使用相同的源代码。

我缺少什么部分?

谢谢!

信息:
*我是 Android 新手
*我正在使用 API 23

<小时/>

androidManifest.xml

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

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

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

</manifest>
<小时/>

MainActivity.java

package com.jfdimarzio.application;

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

import static android.R.attr.value;

public class MainActivity extends AppCompatActivity
{

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

        Intent intent = getIntent();

        if(intent != null)
        {
            String valuee = intent.getStringExtra("key");

            if(valuee != null)
            {
                final TextView textViewToChange = (TextView) findViewById(R.id.txtvw_activity1);

                textViewToChange.setText(valuee);
            }
        }
    }


    public void onClick(View view)
    {
        switch(view.getId())
        {
            case R.id.btn_activity1:
                Intent myIntent1 = new Intent(getBaseContext(), firstactivity.class );
                myIntent1.putExtra("key", "Hello! Activity 1");
                startActivity(myIntent1);
                break;

            case R.id.btn_activity2:
                Intent myIntent2 = new Intent(getBaseContext(), Activity2.class );
                myIntent2.putExtra("key", "Hello! Activity 2");
                startActivity(myIntent2);
                break;

            case R.id.btn_activity3:
                Intent myIntent3 = new Intent(getBaseContext(), Activity3.class );
                myIntent3.putExtra("key", "Hello! Activity 3");
                startActivity(myIntent3);
                break;
        }
    }

}
<小时/>

firstactivity.java

package com.jfdimarzio.application;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;



public class firstactivity extends Activity
{
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Intent intent = getIntent();
        String valuee = intent.getStringExtra("key");

        final TextView textViewToChange = (TextView) findViewById(R.id.txtvw_activity1);

        textViewToChange.setText(valuee);
    }
}
<小时/>

Activity3.java

package com.jfdimarzio.application;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;



public class Activity3 extends Activity
{

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

        Intent intent = getIntent();
        String valuee = intent.getStringExtra("key");

        final TextView textViewToChange = (TextView) findViewById(R.id.txtvw_activity1);

        textViewToChange.setText(valuee);
    }

}
<小时/>

Activity2.java

package com.jfdimarzio.application;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

public class Activity2 extends Activity
{

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

        Intent intent = getIntent();
        String valuee = intent.getStringExtra("key");

        final TextView textViewToChange = (TextView) findViewById(R.id.txtvw_activity1);

        textViewToChange.setText(valuee);
    }

}
<小时/>

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.jfdimarzio.application.MainActivity">

    <TextView
        android:id="@+id/txtvw_activity1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginTop="18dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/btn_activity1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_below="@+id/txtvw_first"
        android:layout_marginTop="67dp"
        android:onClick="onClick"
        android:text="Activity 1" />

    <Button
        android:id="@+id/btn_activity2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_below="@+id/btn_activity1"
        android:layout_marginTop="15dp"
        android:onClick="onClick"
        android:text="Activity 2" />

    <Button
        android:id="@+id/btn_activity3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_below="@+id/btn_activity2"
        android:layout_marginTop="19dp"
        android:onClick="onClick"
        android:text="Activity 3" />

</RelativeLayout>
<小时/>

firstactivity.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/txt_message"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/txtvw_activity1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:text="TextView" />

</RelativeLayout>
<小时/>

activity2.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

</RelativeLayout>

最佳答案

您似乎尚未在 Manifest 文件中声明所有 Activity 。确保在 Manifest.xml 中包含所有 Activity ,如下所示:

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

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

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

关于java - 所有带有 Intent 的按钮都不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46261622/

相关文章:

java - 使用 Android 上传文件时如何重命名文件?

python - 奇怪的 lxml 行为

xml - 我的 jQuery AJAX 请求出了什么问题?

java - 如何将 Action 监听器应用到我的计时器?

java - Java 中的购物车

java - Android 应用程序已停止并出现 NoClassDefFoundError

android - 如何动态设置 EditText 高度

java - 在运行时生成、编译和使用 Java 代码?

android - 如何在android中的 map 上显示当前位置标记?

xml - 我如何判断我编写的 XSLT 3.0 是否确实在流式传输 XML?