GetExtra Android无法运行

时间:2017-07-13 19:27:50

标签: java android android-activity get

我是Android世界的新手,所以我开始练习创建一个“Keep”应用程序。所以你想象我可以添加笔记。问题在于我在这里进行主要活动:

@Override
protected void onResume() {
    super.onResume();
    if (newNote) {
        newNote = false;
      findViewById(R.id.note)).setText(intentNewNote.getStringExtra("toto"));
    }
}

public void addNotes(View view) {
    newNote = true;
    intentNewNote = new Intent(this, newNote.class);
    startActivity(intentNewNote);
}

所以我有一个调用onClick addNotes的按钮,这里是newNote类 -

 @Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.setContentView(R.layout.new_note);
    intent = this.getIntent();
}

 @Override
protected void onDestroy() {
    intent.putExtra("toto", "tototookiklojlojlllllllllllllllllllllllllllllto");
    super.onDestroy();
}

toto Extra是一个测试,但无法打印,这种方式可以使用

 @Override
protected void onResume() {
    super.onResume();
    if (newNote) {
        newNote = false;
        intentNewNote.putExtra("toto", "dzazda");
        ((TextView) findViewById(R.id.note)).setText(intentNewNote.getStringExtra("toto"));
    }
}

因此,当我将额外的活动放在另一个活动中时,它不起作用,唯一的解释是我在addNotes类上获得的意图是不一样的。 有人有想法吗?

谢谢。

2 个答案:

答案 0 :(得分:1)

您是否正在使用putExtra来保存数据?我对你要做的事感到非常困惑。

为了创建Keep类型的应用程序,您需要某种类型的数据库/服务器。看看Parse或Firebase。

答案 1 :(得分:1)

我正在努力了解你在做什么,我相信你正试图从你的第二个活动中返回一些信息,但你使用的是与你收到的相同的意图。它在Android上的工作方式是:

从FirstActivity使用startActivityForResult()方法调用SecondActivity

例如:

Intent i = new Intent(this,SecondActivity.class); startActivityForResult(i,1); 在SecondActivity中,设置要返回FirstActivity的数据。如果您不想返回,请不要设置任何。

例如:在secondActivity中,如果要发回数据:

Intent returnIntent = new Intent();
returnIntent.putExtra("result",result);
setResult(Activity.RESULT_OK,returnIntent);
finish();

如果您不想返回数据:

Intent returnIntent = new Intent();
setResult(Activity.RESULT_CANCELED, returnIntent);
finish();

已修改

现在,在您的FirstActivity类中,编写onActivityResult()方法的以下代码。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

if (requestCode == 1) {
    if(resultCode == Activity.RESULT_OK){
        String result=data.getStringExtra("result");
    }
    if (resultCode == Activity.RESULT_CANCELED) {
        //Write your code if there's no result
    }
}
}//onActivityResult