应用程序崩溃

时间:2014-07-30 16:03:36

标签: android

我是android编程的新手,我的主要活动中有两个按钮,使用第一个按钮我要激活我的第二个活动,我在第一个活动中输入了一个文本,并且我只想要第二个按钮激活第二个活动,当我点击第一个按钮应用程序正常工作,但当我点击第二个按钮我的应用程序崩溃!有什么问题 ? 这是我的主要活动代码:

public class Main extends ActionBarActivity implements OnClickListener {
EditText et;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Button b = (Button) findViewById(R.id.button1);
    et = (EditText) findViewById(R.id.editText1);
    Button b1 = (Button) findViewById(R.id.button2);
    b.setOnClickListener(this);
    b1.setOnClickListener(this);

}

@Override
public void onClick(View arg0) {

    if (arg0.getId() == R.id.button1) {
        Intent intent = new Intent(Main.this, secondj.class);
        intent.putExtra("import", et.getText().toString());
                    startActivity(intent);
    }
    if (arg0.getId() == R.id.button2) {
        Intent intent1 = new Intent(Main.this, secondj.class);
        startActivity(intent1);
    }
}}

由于

2 个答案:

答案 0 :(得分:0)

在您的代码中

if (arg0.getId() == R.id.button1) {
    Intent intent = new Intent(Main.this, secondj.class);
    intent.putExtra("import", et.getText().toString());
                startActivity(intent);
}
if (arg0.getId() == R.id.button2) {
    Intent intent1 = new Intent(Main.this, secondj.class);
    startActivity(intent1);
}

如您所述,点击第一个按钮有效,但点击第二个按钮时崩溃。然后方法调用getIntent().getBundle()只有一次机会在NULL中返回secondj.onCreate()

您可以针对此案例查看NULL

答案 1 :(得分:0)

应用程序由于NullPointerException而崩溃。
原因:点击按钮2 时,您没有提供任何Intent.putExtras,因此当您尝试访问时 第二个活动 表示 getIntent .getExtras(“import”)返回null

      if (arg0.getId() == R.id.button1) {
        Intent intent = new Intent(Main.this, secondj.class);
        Bundle bundleObj = new Bundle();
        bundleObj.putInt("flag", 1);
        bundleObj.putString("import", et.getText().toString());
        intent.putExtras(bundleObj);
        startActivity(intent);
    }
    if (arg0.getId() == R.id.button2) {
        Intent intent1 = new Intent(Main.this, secondj.class);
        Bundle bundleObj = new Bundle();
        bundleObj.putInt("flag", 1);
        intent1.putExtras(bundleObj);
        startActivity(intent1);
    }

在secondj.class中,使用此代码从按钮2点击按钮1。

   Intent intentObj = getIntent();
   Bundle bundleFromIntent = intentObj.getExtras();
   int checkValue = bundleFromIntent.getInt("flag");
   if(checkValue == 1)
   {
       String textFromFirstActivity = bundleFromIntent.getString("import");
   }