Android 8日目
2888 ワード
実習
アクティビティ結果を受信する機能を実現
ActivityResultLauncher<Intent> launcher = registerForActivityResult(
new ActivityResultContracts.StartActivityForResult(),
new ActivityResultCallback<ActivityResult>() {
@Override
public void onActivityResult(ActivityResult result) {
if(result.getResultCode() == RESULT_OK){
Intent intent = result.getData();
Log.d("FirstActivity", intent.getStringExtra("msg"));
}
}
}
);
registerForActivity Result:コンテンツ応答コールバック登録の開始
result.getResultCode():結果コードを返す方法
result.getData():応答入力に格納されたデータを返す方法
ボタン機能の実装
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(FirstActivity.this,ThirdActivity.class);
launcher.launch(intent);
}
});
なぜ:ThirdActivity(その他のアクティビティ)で後結果処理を実行する方法
ThirdActivity
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class ThirdActivity extends AppCompatActivity {
Button btn;
EditText edt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_third);
edt = findViewById(R.id.edtMsg);
btn = findViewById(R.id.btnThird);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String msg = edt.getText().toString();
Intent intent = new Intent();
intent.putExtra("msg",msg);
setResult(RESULT_OK,intent);
finish();
}
});
}
}
:処理が正常である場合、応答メッセージはintentとともに転送されます.
実行画面
コンソール出力画面
Reference
この問題について(Android 8日目), 我々は、より多くの情報をここで見つけました https://velog.io/@dfdf/Android8일차テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol