こんにちは。。DREAMWALKER です。
ANDROIDを開発しているとACTIVITYやFRAGMENT間データを伝送しなきゃならない場合があります。
その時色々方法はありますが、簡単にBUNDLEを使って処理できます。
序論
ANDROIDではACTIVITY間データを取り交わす場合、
1. REQUEST CODE
2. KEY
3. KEY - VALUE
この三つを基本にして取り交わします。
基本的なテクニック.
発信(送り)
普通BUTTONを押したあと、処理しますので、OnClickListenerのなかでしました。
activity.java
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.putExtra("name","john");
setResult(RESULT_OK, intent);
finish();
}
});
注文点はputExtra("key","key-value")です。
受信(受け取り)
getを注文。
MainActivity.java
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == RESULT_OK){
String name = intent.getExtras().getString("name");
Toast.makeText(this,"name:? -> " + name, Toast.LENGTH_SHORT).show();
}
}
RESULT_CODEはACTIVITY.JAVAの定数です。
ACTIVITY.JAVA
/** Standard activity result: operation succeeded. */
public static final int RESULT_OK = -1;
本論
BundleもKEY-VALUEになっており、HASH MAP 資料構造(Data Structure)です。
発信(送り)
activity.java
Bundle bundle = new Bundle();
bundle.putString("data0", "bird");
bundle.putString("data1", "lion");
bundle.putString("data2", "dog");
bundle.putString("data3", "cat");
Intent intent = new Intent(getApplicationContext(), DrugDetailActivity.class);
intent.putExtras(bundle);
startActivity(intent);
- putExtra("key","value");
- putExtras(bundle);
受信(受け取り)
ReceivedActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detail);
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
String bird = bundle.getString("data0");
String lion = bundle.getString("data1");
String dog = bundle.getString("data2");
String cat = bundle.getString("data3");
}
結論
PUT-GETのメカニズム です。
1. intent
2. bundle
3. send-receive
終わりに
初心者の方は無限な振り返りをして、
自分のものにしましょう。Codingは見るだけではNGです。
読みいただきありがとうございました。
次のPostで会いましょう!
Dreamwalker。