[英]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.