簡體   English   中英

Android onclick登錄崩潰

[英]Android onclick Login Crash

我是新的Android開發人員-我正在嘗試實現onClickListener ,以便單擊按鈕時,它會檢查輸入的文本,如果正確,則啟動一個新活動。

XML文件或類中均未顯示任何錯誤。 但是,當文本字段與代碼匹配時,應用程序將崩潰。 [在LogCat中,行: startActivity(intent) ; ]

如果可以的話,將不勝感激,謝謝。

public class HomeMain extends Activity implements OnClickListener {
    EditText editTextUN;
    EditText editTextPW;
    Button buttonlogin;
    Button buttoncancel;

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

        editTextUN = (EditText) findViewById(R.id.editTextUN);
        editTextPW = (EditText) findViewById(R.id.editTextPW);
        buttonlogin = (Button) findViewById(R.id.buttonlogin);
        buttoncancel = (Button) findViewById(R.id.buttoncancel);

        buttonlogin.setOnClickListener(this);
        buttoncancel.setOnClickListener(this);
    }

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

    @Override
    public void onClick(View v) {
        String un=editTextUN.getText().toString();
        String pw=editTextPW.getText().toString();
            switch (v.getId()) {
            case R.id.buttonlogin:
                if(un.equals("techie") && pw.equals("techie")) {
                    Intent x=new Intent(this,Menu.class);
                    startActivity(x);
                }
                break;
            case R.id.buttoncancel:
                editTextUN.setText("");
                editTextPW.setText("");
                break;
            default: break;
            }
    }
}

這是onClick應該去的另一門課。 (這里什么都沒有發生。現在只是另一個屏幕)

public class Menu extends Activity implements OnClickListener {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_menu);
    }
    public void onClick(View v) {}
}

而且,LogCat錯誤:

E/AndroidRuntime(1702): FATAL EXCEPTION: main
E/AndroidRuntime(1702): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.appname.appname/android.view.Menu}; have you declared this activity in your AndroidManifest.xml?
E/AndroidRuntime(1702):     at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1628)
E/AndroidRuntime(1702):     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1424)
E/AndroidRuntime(1702):     at android.app.Activity.startActivityForResult(Activity.java:3390)
E/AndroidRuntime(1702):     at android.app.Activity.startActivityForResult(Activity.java:3351)
E/AndroidRuntime(1702):     at android.app.Activity.startActivity(Activity.java:3587)
E/AndroidRuntime(1702):     at android.app.Activity.startActivity(Activity.java:3555)
E/AndroidRuntime(1702):     at com.appname.appname.HomeMain.onClick(HomeMain.java:52)
E/AndroidRuntime(1702):     at android.view.View.performClick(View.java:4240)
E/AndroidRuntime(1702):     at android.view.View$PerformClick.run(View.java:17721)
E/AndroidRuntime(1702):     at android.os.Handler.handleCallback(Handler.java:730)
E/AndroidRuntime(1702):     at android.os.Handler.dispatchMessage(Handler.java:92)
E/AndroidRuntime(1702):     at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime(1702):     at android.app.ActivityThread.main(ActivityThread.java:5103)
E/AndroidRuntime(1702):     at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(1702):     at java.lang.reflect.Method.invoke(Method.java:525)

這是下面的清單:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.appname.appname"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="17"
    android:targetSdkVersion="18" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.appname.appname.HomeMain"
        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="com.appname.appname.Admin"
        android:label="@string/title_activity_create" >
    </activity>
    <activity
        android:name="com.appname.appname.MainActivity"
        android:label="@string/activity_main" >
    </activity>
    <activity
        android:name="com.appname.appname.NewJob"
        android:label="@string/add_new_job" >
    </activity>
    <activity
        android:name="com.appname.appname.EditJob"
        android:label="@string/edit_job" >
    </activity>
    <activity
        android:name="com.appname.appname.Scroll"
        android:label="@string/title_activity_scroll" >
    </activity>
    <activity
        android:name="com.appname.appname.AddNewJob"
        android:label="@string/title_activity_add_new_job" >
    </activity>

    <activity
        android:name="com.appname.appname.Home"
        android:label="@string/title_activity_home" >
    </activity>

    <activity 
        android:name="com.appname.appname.HomeMain"
        android:label="@string/title_activity_home_main" >

    </activity>

    <activity
        android:name="com.appname.appname.Menu"
        android:label="@string/title_activity_menu" >
    </activity>

</application>

您的活動Menu和實際的view.Menu之間發生沖突。

不用調用Menu.class而是使用com.appname.appname.Menu.class

Intent x = new Intent(this, com.appname.appname.Menu.class);
startActivity(x);

或重命名您的活動。

您在此處顯示的代碼中沒有可修復的內容。 基於LogCat,您的應用程序在執行startActivity()時崩潰。 問題出在運行其他活動上。 如果您還發布Menu.java和完整的LogCat消息,那么有人可以幫助您調試代碼。

您尚未在Manifest聲明Menu Activity

加上這個

<activity android:name="com.appname.appname.Menu"/>

更改軟件包名稱(如果不同)。

首先從Manifest刪除多余的活動聲明

<activity 
    android:name="com.appname.appname.HomeMain"
    android:label="@string/title_activity_home_main" >
</activity>

要解決此錯誤,請更改此行

Intent x=new Intent(this,Menu.class);

Intent x=new Intent(this,com.appname.appname.Menu.class);

您的HomeMain活動已經import android.view.Menu;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM