0

所以,我刚刚开始查看并在活动之间移动。我以为我得到了我想要的东西。我修复了所有错误,但现在当我测试应用程序时它崩溃了。我是android和eclipse的新手。所以我不确定发生了什么。这是我的 MainActivity.java:

       import android.os.Bundle;
       import android.app.Activity;
       import android.content.Intent;
       import android.util.Log;
       import android.view.Menu;
       import android.view.MenuInflater;
       import android.view.View;
       import android.widget.Button;
       import android.widget.EditText;
       import android.widget.TextView;

    public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Intent intent = getIntent();
    String info = intent.getStringExtra("info_key");
    TextView text = (TextView) findViewById(R.id.nametext);
    text.setText(info);
}


//opens a new activity.
public void openAddItem (View v){
    Intent intent = new Intent (this, Additem.class);
    startActivity(intent);
      }

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

    }

这是我的第二个活动;Additem.java:

    package com.grocerylist;

     import android.os.Bundle;
     import android.app.Activity;
     import android.content.Intent;
     import android.view.Menu;
     import android.view.View;
     import android.widget.EditText;
     import android.widget.TextView;

    public class Additem extends Activity {

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

}


public void additem (View v){
    EditText text = (EditText)findViewById(R.id.itemname);
    String info = text.getText().toString();
    Intent intent = new Intent(this, MainActivity.class);
    intent.putExtra("info_key", info);
    startActivity(intent);
     }


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

    }

谢谢,我很肯定问题出在我放置身份证的地方。

4

2 回答 2

1

我看到的第一个问题就在这里

Intent intent = getIntent();
    String info = intent.getStringExtra("info_key");
    TextView text = (TextView) findViewById(R.id.nametext);
    text.setText(info);

如果这是你的第一个,就没有Intent“得到” Activity。当您Activity使用 anIntent和 send开始时使用它extras。所以,自然infonull。当你从第二个创建它时会有一些东西,但当Activity你第一次运行你的应用程序时不会。此外,您可能希望在第一次使用startActivityForResultActivity

其次,我看不到openAddItem()你第一次打电话的地方Activity。它可能来自一个Button,但我没有看到任何Buttons

您似乎缺少对 Android 框架基础知识的一些关键理解。如果您还没有通过它们,我建议您从Docs Here开始。祝你好运

还有,这

Intent intent = new Intent (this, Additem.class);

应该是这个

Intent intent = new Intent (MainActivity.this, Additem.class);
于 2013-03-21T22:28:26.667 回答
-2

我也看到的第一个问题已经被codeMagic提到过。

第二件事:如果你只是调用你的方法开始另一个Activityin onCreate(),你会在堆栈中得到一个伪无限数量的那些Activities,你的应用程序将崩溃。

考虑观看这些教程,它可能会帮助您入门

于 2013-03-21T22:34:05.640 回答