Dialog から Activity に値を引き渡す方法


作ろうと思ったもの。

MainActivity にボタンを配置して、そのボタンを押すと ListView を含む Dialog が開いて、ListView から選択して OK ボタンを押すと、何番目を選んだか MainActivity に通知するってヤツ。

ということで、こちら様のやり方を参考に しました。


Dialog側

@Override
public void onClick(View view){
    String text = editText1.getText().toString();
    MainActivity callingActivity = (MainActivity) getActivity();
    callingActivity.onReturnValue(text); 
}



MainActivity側

public void onReturnValue(String value){
    TextView textview2 = (TextView)findViewById(R.id,textView2);
    textView2.setText(value);
}



がキモ。
やり取りしたいデータ型が違っていても、onRetuenValue() の引数の型を変えてやればダイジョブ。

まぁ、実はダイアログでタイマー設定時間を選んで、その時間が経過したら別処理を行うってことをしたかったので、onReturnVlaue() 内で、AlarmManager でアラーム設定して、時間がきたら、この方法を使って MainActivity で別処理を~、なんて考えていたんだけれど、Broadcast では使えないんでした。ま、そりゃそうだ。

で、色々と方法を模索していたんだけれど、いつもの通り、pd-for-android を組み込んでいたので、タイマー処理はそちらに任せることに。

結論としては、タイマー処理は Pure Data に任せるとラク。

と、どうやったら楽ができるかということには、全力でぶつかるワタクシ。

しかし、Android のタイマー管理は色々と方法があるので、検証に時間が掛かっていけない。


スポンサーサイト

コメント

非公開コメント