コメント |
@SHOW
[[BUTTON3]] では、setResult で数値以外に intent も戻しています。ですから、MainActivity で受け取れますが、他のボタンでは intent を返していないので、MainActivity の onActivityResult では intent が null になるので注意する必要があります。
@END
@DIV
package lightbox.may.toolstest;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.TextView;
public class Main2Activity extends AppCompatActivity {
private int requestCode;
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
Intent intent = getIntent();
String text = intent.getStringExtra("text");
tv = (TextView) Main2Activity.this.findViewById(R.id.textView);
tv.setText( text );
requestCode = intent.getIntExtra("requestCode", 1);
Log.i("lightbox", String.format("requestCode : %d", requestCode) );
// ボタンのイベントを登録
Main2Activity.this.findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setResult(100);
// Main2Activity.this.finish();
finish();
}
});
// ボタンのイベントを登録
Main2Activity.this.findViewById(R.id.button2).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setResult(200);
// Main2Activity.this.finish();
finish();
}
});
// ボタンのイベントを登録
Main2Activity.this.findViewById(R.id.button3).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.putExtra("returnData", "文字列を返す");
setResult(300, intent);
// Main2Activity.this.finish();
finish();
}
});
}
}
@END |