在Android中强制关闭

Posted

技术标签:

【中文标题】在Android中强制关闭【英文标题】:Force close in Android 【发布时间】:2012-08-03 00:41:31 【问题描述】:

运行应用程序时出现空指针异常,我必须强制关闭。我想 我无法以正确的形式管理数据库。

package sarah.android;

import android.R.integer;
import android.app.Activity;
import android.content.Intent;
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;
import android.widget.Toast;

public class SelesMeter2Activity extends Activity implements OnClickListener 
    EditText ed1;
    EditText ed2;
    Button b1;
    Button b2;
    Intent in;
    signup obj=new signup();

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        ed1=(EditText) findViewById(R.id.ed1);
        ed2=(EditText) findViewById(R.id.ed2);
        b1= (Button) findViewById(R.id.bt1);
        b2= (Button) findViewById(R.id.bt2);
        b1.setOnClickListener(this);
        b2.setOnClickListener(this);
    

    @Override
    public void onClick(View arg0) 
        // TODO Auto-generated method stub
        //log in
        if (arg0.getId() == R.id.bt1)
        
            String name=ed1.getText().toString();
            int pass = Integer.parseInt(ed2.getText().toString());
            if (obj.c.getString(0) == name&&obj.c.getInt(1) == pass)
            
                in = new Intent(this,secondview.class);
                startActivity(in);
            
            else
            
                Toast.makeText(this, "please sing up first", 1000).show();
            
        
        else
            if (arg0.getId()==R.id.bt2)
            
                in=new Intent(this,signup.class);
                startActivity(in);
            
    

用于注册新用户并将他们的信息放入我的数据库的第二个活动:

package sarah.android;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.widget.Toast;

public class signup extends Activity 
    SQLiteDatabase sql;
    Cursor c;
    @Override
    protected void onCreate(Bundle savedInstanceState) 
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.singupx);
        Intent in = getIntent();
        Bundle b = in.getExtras();
        String n = b.getString("x");
        int p = Integer.valueOf(b.getString("y"));

        sql = openOrCreateDatabase("db",0, null);
        sql.execSQL("CREATE TABLE if not exists employee " +
                    " (name text NOT NULL UNIQUE" +
                    ",password integer NOT NULL UNIQUE)");
        sql.execSQL("insert into employee(name) values(" +
                    "'"+n+"') ");
        Toast.makeText(this,"Data inserted", 1000).show();
    

【问题讨论】:

一个 Logcat 错误报告会更有帮助,为我们复制和粘贴 logcat! 不幸的是,我将更改孔代码..我将再次需要您的帮助 :) 非常感谢您的宝贵时间 【参考方案1】:

这……很简单。在您的第一个活动中,您没有将"x""y" 放入意图中。在第二个活动中,您尝试获取它们。

...
Bundle b=in.getExtras(); // perhaps this is null
String n=b.getString("x"); // or this one
int p=Integer.valueOf(b.getString("y")); // or this one

【讨论】:

非常感谢 4 你实际上这是因为我更改了我的代码几次 :)

以上是关于在Android中强制关闭的主要内容,如果未能解决你的问题,请参考以下文章

android“强制关闭”内存到底发生了啥

Android:如何在“强制关闭”后自动重启应用程序?

如何确定Android应用程序是不是被强制关闭?

android 怎么调用强制关闭

应用程序在将项目添加到列表视图(android)时强制关闭[重复]

如何在Android中强制停止AsyncTask [重复]