执行finish()时捆绑或PutExtra

Jar*_*lan 1 android

请问有没有办法putExtras或者Bundle什么时候调用finish()method。

例如,就像调用 anActivity你可以这样做:

Intent intent = new Intent(view.getContext(), AddListing.class);
intent.putExtra("user_id", userID);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

可以使用它finish()吗?

谢谢。

OBX*_*OBX 5

如果您希望在 anActivity被销毁时传回结果,您应该寻找的是:startActivityForResult

有两种变体startActivityForResult()bundle在必要时也允许通过:

public void startActivityForResult (Intent intent, int requestCode)  
public void startActivityForResult (Intent intent, int requestCode, Bundle options)  
Run Code Online (Sandbox Code Playgroud)

请参阅此示例以更好地理解该概念:

主活动.java:

     protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  
        textView1=(TextView)findViewById(R.id.textView1);  
        button1=(Button)findViewById(R.id.button1);  
        button1.setOnClickListener(new OnClickListener() {  
            @Override  
            public void onClick(View arg0) {  
                Intent intent=new Intent(MainActivity.this,SecondActivity.class);  
                startActivityForResult(intent, 2);// Activity is started with requestCode 2  
            }  
        });  
    }  
     // Call Back method  to get the Message from other Activity  
    @Override  
       protected void onActivityResult(int requestCode, int resultCode, Intent data)  
       {  
                 super.onActivityResult(requestCode, resultCode, data);  
                  // check if the request code is same as what is passed  here it is 2  
                   if(requestCode==2)  
                         {  
                            String message=data.getStringExtra("MESSAGE");   
                            textView1.setText(message);  
                         }  
     }  
Run Code Online (Sandbox Code Playgroud)

第二个Activity.java:

protected void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState);  
    setContentView(R.layout.activity_second);  
    editText1=(EditText)findViewById(R.id.editText1);  
        button1=(Button)findViewById(R.id.button1);  
        button1.setOnClickListener(new OnClickListener() {  
            @Override  
            public void onClick(View arg0) {  
                String message=editText1.getText().toString();  
                Intent intent=new Intent();  
                intent.putExtra("MESSAGE",message);  
                setResult(2,intent);  
                finish();//finishing activity  
            }  
        });  
}  
Run Code Online (Sandbox Code Playgroud)