Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 程序运行时没有错误,但按钮无法打开_Java_Android - Fatal编程技术网

Java 程序运行时没有错误,但按钮无法打开

Java 程序运行时没有错误,但按钮无法打开,java,android,Java,Android,我一直在关注youtube上的mybringback教程,并尝试实现我学到的东西。试图在我的主页上找到一个按钮来打开另一个页面。最后程序运行没有错误,但现在当我按下按钮时,什么也没有打开 我的按钮所在的Main.xml文件 <Button android:id="@+id/btnChpt3" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layo

我一直在关注youtube上的mybringback教程,并尝试实现我学到的东西。试图在我的主页上找到一个按钮来打开另一个页面。最后程序运行没有错误,但现在当我按下按钮时,什么也没有打开

我的按钮所在的Main.xml文件

<Button
    android:id="@+id/btnChpt3"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="10dp"
    android:text="Appearance and Grooming Policies"
    android:textSize="18sp"
    android:textStyle="bold|italic"
    android:gravity="center" 
    />
}

还有我的舱单

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.th3ramr0d.learnar670_1"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="14"
    android:targetSdkVersion="21" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity
        android:name=".Menu"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="com.th3ramr0d.learnar670_1.MENU" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

    <activity
        android:name=".Chapter3"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="com.th3ramr0d.learnar670_1.CHAPTER3" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
</application>

</manifest>
这是我的MainActivity.java

 package com.th3ramr0d.learnar670_1;

 import android.app.Activity;
 import android.os.Bundle;
 import android.view.Menu;
 import android.view.MenuItem;


 public class MainActivity extends Activity {

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

 }




 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
 }

 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();
    if (id == R.id.action_settings) {
        return true;
    }
    return super.onOptionsItemSelected(item);
 }
 }

实际上,您可以尝试一种更方便的方法来启动应用程序内部的活动:

startActivity(新意图(Menu.this,第3章类))

此外,您还可以在此处了解其工作原理: 早安

尝试替换该行:

startActivity(new Intent("com.th3ramr0d.learnar670_1.CHAPTER3"));
代码如下:

Intent intent = new Intent(Menu.this, Chapter3.class);
startActivity(intent);
尝试将代码还原为原始代码,复制布局活动_main.xml并将其重命名为menu.xml

现在在layout menu.xml中更改以下行:

android:text="Appearance and Grooming Policies"
致:

android:text=“转到菜单”

这句话:

android:id="@+id/btnChpt3"
与:

android:id="@+id/btnMenu"
并替换该行:

setContentView(R.layout.activity_main); 
在Menu.java中,使用:

setContentView(R.layout.menu.xml)

最后,在MainActivity.java中,将以下内容添加到oncreate方法中:

按钮btnGoToMenu=(按钮)findViewById(R.id.btnMenu)

btnGoToMenu.setOnClickListener(新视图.OnClickListener(){

}))


然后重新运行应用程序。

复制此文件并粘贴到您的
AndroidManifest
中,然后重试

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.th3ramr0d.learnar670_1"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="21" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".Menu"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".Chapter3"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="com.th3ramr0d.learnar670_1.CHAPTER3" />

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

</manifest>

为了帮助你理解这个问题

<category android:name="android.intent.category.LAUNCHER" />

AndroidManifest
中的上述代码定义了按下应用程序图标时要启动的活动。根据您之前的清单,它会启动activity
main activity
,这也会设置它
setContentView(R.layout.activity\u main)Hello World
程序

因此,当您启动应用程序时,它的
main活动
(看起来与您设计的布局相同)正在加载,而不是您想要加载的
菜单
活动。因此,我们在清单中声明
菜单
活动的地方做了一些更改,因为启动器现在启动了
菜单
活动,其中包含处理按钮单击的代码片段


我希望这有帮助

您的
菜单
代码是否正在执行?我看到你有
activity\u main
布局,而不是
activity\u菜单
-你可能有
activity\u main
也显示在你的主活动中,并且没有点击监听器。对不起,我不知道这件事。你能把你的话给我解释一下吗?看看你的
清单
,首先启动的活动是你的
main活动
。你能在那里点击一个按钮吗?您能用该代码更新问题吗?您能确认按钮位于
Main.xml
activity\u Main.xml
中吗?在您提出的问题中,它提到了
Main.xml
,如果没有用,请尝试删除它,但效果仍然相同。没有打开任何内容。我想您是否正确进入菜单活动?你能发布你的Chaper3.java类以便我们可以看到代码吗?我还假设应用程序没有崩溃?正确。它不会崩溃。没有给出任何错误。当我按下按钮时,它没有任何作用。我的目的是向您展示不同的布局如何链接到不同的活动,以及命名约定如何帮助您避免这里遇到的一些混乱。还有+1到codePG,这是一个很好的答案。我理解你的意思,这很有帮助。但是,该代码仍然不起作用。现在,当我在手机和nexus 7上运行它时,程序永远不会出现,图标也永远不会显示,我无法启动它。我可以看到它在设置/应用程序中运行,但我无法打开该程序。请清理项目,然后再次运行
project->clean
,并且可以从项目中删除
MainActivity.java
,因为它没有任何用途。正常工作:)发生的事情是我将Menu.java重命名为MainMenu.java,因为我认为莫名其妙地,他是有责任的。因此,我编辑了您的代码以反映我的类名,但我认为它在android:name=“.Menu”和android.intent.action.MAIN上必须相同,所以我将其更改为android.intent.action.MAIN菜单。不管怎么说我的问题。为什么android.intent.action.MAIN的扩展必须是MAIN?我想我还没有完全理解这一部分。谢谢。很高兴为你工作。我建议您从youtube slidenerd或smartherd观看一些教程。他们帮了我很多。
// @Override
public void onClick(View v) {
    Intent intent = new Intent(MainActivity.this, Menu.class);
    startActivity(intent);

}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.th3ramr0d.learnar670_1"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="21" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".Menu"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".Chapter3"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="com.th3ramr0d.learnar670_1.CHAPTER3" />

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

</manifest>
<category android:name="android.intent.category.LAUNCHER" />