Android应用程序无法启动活动

nx7onnlm  于 2023-05-12  发布在  Android
关注(0)|答案(5)|浏览(164)

我想知道为什么它不能打开新的Java类。当我尝试开始新的活动时,它会崩溃。

public class MainActivity extends ActionBarActivity {
    EditText emailEt;
    TextView registerET;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        emailEt = (EditText) findViewById(R.id.email);
        registerET = (TextView) findViewById(R.id.register);
        registerET.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                Log.i("clicks","You Clicked register page");
                Intent myIntent = new Intent(MainActivity.this, RegisterActivity.class);
                startActivity(myIntent);
                MainActivity.this.finish();
            }
        });
    }
    public void OnLogin(View view) {
        String username = emailEt.getText().toString();
        String type = "login";
        BackgroundWorker backgroundWorker = new BackgroundWorker(this);
        backgroundWorker.execute(type, username);
    }

}

可能是载货单的问题?我是不是把它放错了位置?

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.a20_1discussboard">
<uses-permission android:name="android.permission.INTERNET"></uses-permission>"
<application
    android:allowBackup="true"
    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>
</application>
    <activity android:label="@string/app_name" android:name=".RegisterActivity"/>
</manifest>

它看起来像可以打开新的java类,但它仍然显示MainActivity。错误日志:

E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: com.example.a20_1discussboard, PID: 2194
                  java.lang.IllegalStateException: Could not find method onClick(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.support.v7.widget.AppCompatTextView with id 'register'
                      at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.resolveMethod(AppCompatViewInflater.java:327)
                      at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:284)
                      at android.view.View.performClick(View.java:4780)
                      at android.view.View$PerformClick.run(View.java:19866)
                      at android.os.Handler.handleCallback(Handler.java:739)
                      at android.os.Handler.dispatchMessage(Handler.java:95)
                      at android.os.Looper.loop(Looper.java:135)
                      at android.app.ActivityThread.main(ActivityThread.java:5254)
                      at java.lang.reflect.Method.invoke(Native Method)
                      at java.lang.reflect.Method.invoke(Method.java:372)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
093gszye

093gszye1#

输入正确的菜单格式:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.a20_1discussboard">
<uses-permission android:name="android.permission.INTERNET"></uses-permission>"
<application
android:allowBackup="true"
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:label="@string/app_name"     
          android:name=".RegisterActivity"/>   //<---here
</application>
</manifest>

不要调用finish(),这导致了你的崩溃:

registerET.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            Log.i("clicks","You Clicked register page");
            Intent myIntent = new Intent(MainActivity.this, RegisterActivity.class);
            startActivity(myIntent);
            //remove finish();
        }
    });
knpiaxh1

knpiaxh12#

在AndroidManifest.xml中尝试在应用程序中声明的Activity,如下所示。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.a20_1discussboard">
<uses-permission android:name="android.permission.INTERNET"></uses-permission>"
<application
    android:allowBackup="true"
    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:label="@string/app_name"
              android:name=".RegisterActivity"/>
</application>
</manifest>
nle07wnf

nle07wnf3#

确保将RegisterActivity添加到AndroidManifest.xml<application>标记中:

<application ...>

    ...

    <activity
       android:label="@string/app_name"   
       android:name=".RegisterActivity"/>

</application>
ctrmrzij

ctrmrzij4#

从onCreate方法中删除此行:MainActivity.this.finish();
如果要停止或暂停MainActivity,请用途:

@Override
public void onPause() { }

@Override
public void onStop() { }

在MainActivity类中。

shyt4zoc

shyt4zoc5#

谢谢大家。
将RegisterActivity添加到<application>标记内的AndroidManifest.xml并删除MainActivity.this.finish()
它现在起作用了。

相关问题