不幸的是,“应用程序名称”已停止。 (安卓模拟器,Eclipse)
Posted
技术标签:
【中文标题】不幸的是,“应用程序名称”已停止。 (安卓模拟器,Eclipse)【英文标题】:Unfortunately, “App Name” has stopped. (Android Emulator, Eclipse) 【发布时间】:2014-12-06 08:48:30 【问题描述】:当我尝试启动我的应用程序时,一切正常,但是当我从菜单中打开一个课程时,它没有打开。我是 android 编程新手。请帮帮我..谢谢
继续收到此消息
很遗憾,(应用名称)已停止。”
这是我的java
package com.e_attendance;
import android.app.Activity;
import android.app.AlertDialog.Builder;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class ManageClass extends Activity implements OnClickListener
EditText editClassno;
Button btnAdd, btnDelete, btnModify, btnViewAll;
SQLiteDatabase db;
@Override
public void onCreate(Bundle savedInstanceState)
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.classdetail);
editClassno = (EditText) findViewById(R.id.editClassno);
btnAdd.setOnClickListener(this);
btnDelete.setOnClickListener(this);
btnModify.setOnClickListener(this);
btnViewAll.setOnClickListener(this);
db = openOrCreateDatabase("ClassDB", Context.MODE_PRIVATE, null);
db.execSQL("CREATE TABLE IF NOT EXISTS class (classno VARCHAR);");
@Override
public void onClick(View view)
if (view == btnAdd)
if (editClassno.getText().toString().trim().length() == 0)
showMessage("Error", "Enter a Class No please");
return;
db.execSQL("INSERT INTO class VALUES('" + editClassno.getText()
+ "');");
showMessage("Success", "Record added");
clearText();
if (view == btnDelete)
if (editClassno.getText().toString().trim().length() == 0)
showMessage("Error", "Please enter Classno");
return;
Cursor c = db.rawQuery("SELECT * FROM class WHERE classno='"
+ editClassno.getText() + "'", null);
if (c.moveToFirst())
db.execSQL("DELETE FROM class WHERE classno='"
+ editClassno.getText() + "'");
showMessage("Success", "Record Deleted");
else
showMessage("Error", "Invalid Classno");
clearText();
if (view == btnModify)
if (editClassno.getText().toString().trim().length() == 0)
showMessage("Error", "Please enter Classno");
return;
Cursor c = db.rawQuery("SELECT * FROM class WHERE classno='"
+ editClassno.getText() + "'", null);
if (c.moveToFirst())
db.execSQL("UPDATE class SET class WHERE classno='"
+ editClassno.getText() + "'");
showMessage("Success", "Record Modified");
else
showMessage("Error", "Invalid Clasno");
clearText();
if (view == btnViewAll)
Cursor c = db.rawQuery("SELECT * FROM class", null);
if (c.getCount() == 0)
showMessage("Error", "No records found");
return;
StringBuffer buffer = new StringBuffer();
while (c.moveToNext())
buffer.append("Classno: " + c.getString(0) + "\n");
;
showMessage("Classes No.", buffer.toString());
public void clearText()
editClassno.setText("");
editClassno.requestFocus();
public void showMessage(String title, String message)
Builder builder = new Builder(this);
builder.setCancelable(true);
builder.setTitle(title);
builder.setMessage(message);
builder.show();
我的 xml
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/myLayout2"
android:layout_
android:layout_
android:stretchColumns="0" >
<TextView
android:layout_
android:layout_
android:layout_x="110dp"
android:layout_y="10dp"
android:text="Class Section" />
<Button
android:id="@+id/btnAdd"
android:layout_
android:layout_
android:layout_x="30dp"
android:layout_y="200dp"
android:text="@string/add" />
<Button
android:id="@+id/btnDelete"
android:layout_
android:layout_
android:layout_x="150dp"
android:layout_y="200dp"
android:text="@string/delete" />
<Button
android:id="@+id/btnModify"
android:layout_
android:layout_
android:layout_x="30dp"
android:layout_y="250dp"
android:text="@string/modify" />
<Button
android:id="@+id/btnViewAll"
android:layout_
android:layout_
android:layout_x="30dp"
android:layout_y="300dp"
android:text="@string/view_all" />
<TextView
android:layout_
android:layout_
android:layout_x="30dp"
android:layout_y="102dp"
android:text="Class_no" />
<EditText
android:id="@+id/editClassno"
android:layout_
android:layout_
android:layout_x="120dp"
android:layout_y="93dp"
android:ems="10"
android:inputType="number" />
</AbsoluteLayout>
安卓清单
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.e_attendance"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="16" />
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
-
<activity
android:name="com.e_attendance.HomeActivity"
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=".SignUPActivity" />
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="com.e_attendance.STARTINGPOINT" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".Menu"
android:label="@string/app_name" >
<intent-filter>
<action android:name="com.e_attendance.MENU" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".OpenNotes"
android:label="@string/app_name" >
</activity>
<activity android:name=".NewText" >
</activity>
<activity
android:name=".ManageClass"
android:label="@string/app_name" >
</activity>
<activity
android:name=".ManageStudents"
android:label="@string/app_name" >
</activity>
</application>
</manifest>
【问题讨论】:
你能发一下logcat吗? 在为所有按钮设置点击监听之前,请初始化所有按钮。 这是因为您没有从您的 xml 中找到按钮 Unfortunately MyApp has stopped. How can I solve this? 的可能重复项 【参考方案1】:在onCreate()
方法上,您没有为所有按钮找到IDs
。所以就去做吧。
Button btnAdd, btnDelete, btnModify, btnViewAll;
btnAdd = (Button) findViewById(R.id.btnAdd);
btnDelete = (Button) findViewById(R.id.btnDelete);
btnModify = (Button) findViewById(R.id.btnModify);
btnViewAll = (Button) findViewById(R.id.btnViewAll);
【讨论】:
@MunnishDindoyal 永远欢迎您。我还没有写完整的代码。但我只是指出了你在哪里犯了错误。如果解决了,请接受答案。 我对其进行了修改,效果很好..供参考,我正在为我的最后一年项目进行电子考勤..非常感谢! 再次嗨..我有一个问题,我有两个班级,一个是学生详细信息,另一个是班级详细信息..我在 classesdetail 中添加了 classno。但是我怎样才能让它们出现在包含 classno 的学生详细信息中。还?我想要classno。我添加到出现在学生详细信息中也像列表视图等。谢谢您的回复..请解释我需要学习的内容..我会尝试一下【参考方案2】:试试这个方法,希望能帮助你解决问题。
@Override
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.classdetail);
editClassno = (EditText) findViewById(R.id.editClassno);
btnAdd = (Button) findViewById(R.id.btnAdd);
btnDelete = (Button) findViewById(R.id.btnDelete);
btnModify = (Button) findViewById(R.id.btnModify);
btnViewAll = (Button) findViewById(R.id.btnViewAll);
btnAdd.setOnClickListener(this);
btnDelete.setOnClickListener(this);
btnModify.setOnClickListener(this);
btnViewAll.setOnClickListener(this);
db = openOrCreateDatabase("ClassDB", Context.MODE_PRIVATE, null);
db.execSQL("CREATE TABLE IF NOT EXISTS class (classno VARCHAR);");
【讨论】:
很高兴帮助你亲爱的你可以接受我的回答已经在评论中指出你的问题然后给你确切的答案。 是的,我修改了它..我复制了你的答案并将其粘贴到 eclipse..谢谢你!【参考方案3】:您需要使用 R 类创建从 Java 到 XML 的桥梁,如下所示:
@Override
public void onCreate(Bundle savedInstanceState)
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.classdetail);
editClassno = (EditText) findViewById(R.id.editClassno);
btnAdd = (Button)findViewById(R.id.btnAdd);
btnDelete= (Button)findViewById(R.id.btnDelete);
btnModify= (Button)findViewById(R.id.btnModify);
btnViewAll= (Button)findViewById(R.id.btnViewAll);
btnAdd.setOnClickListener(this);
btnDelete.setOnClickListener(this);
btnModify.setOnClickListener(this);
btnViewAll.setOnClickListener(this);
db = openOrCreateDatabase("ClassDB", Context.MODE_PRIVATE, null);
db.execSQL("CREATE TABLE IF NOT EXISTS class (classno VARCHAR);");
希望一切正常
【讨论】:
以上是关于不幸的是,“应用程序名称”已停止。 (安卓模拟器,Eclipse)的主要内容,如果未能解决你的问题,请参考以下文章