如何实现startActivityForResult

时间:2014-08-14 16:32:54

标签: android

在我的应用程序中,我创建了两个活动,我希望从第二个活动中获取输入并在第一个活动中使用它,我使用startActivityForResult但是它有一个问题!

这是第一项活动的代码:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_my);
    final Button b=(Button)findViewById(R.id.button);

    b.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
          Intent i=new Intent("net.naif.action.GETDATA");
            startActivityForResult(i,77);
        }
    });

}

protected void onActivityForResult (int requestCode,int resultCode,Intent data){
    if (requestCode ==77 && resultCode ==RESULT_OK){
        String msg =data.getStringExtra("text");

        Toast.makeText(getBaseContext(),msg,Toast.LENGTH_SHORT).show();
    }
}

这是第二次:

 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);
    final Button b=(Button)findViewById(R.id.button);
      final EditText t=(EditText)findViewById(R.id.editText);
    b.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String s=t.getText().toString();
            Intent i=new Intent();
            i.putExtra("text",s);
            setResult(Activity.RESULT_OK,i);
            finish();

        }
    });
}

Android工作室通知我这是方法(protected void onActivityForResult (int requestCode, int resultCode, Intent data)从未使用过。

1 个答案:

答案 0 :(得分:4)

那是因为该方法的名称为onActivityResult,而不是onActivityForResult