私は書いているAndroidアプリのダイアログにを使用しています。ユーザーにタイマーの期間を入力させ、その期間を呼び出しているアクティビティに戻すようにします。私は既にこの問題に関してSOに質問に答えていることを知っていますが、私は何か仕事を得ることができませんでした。ここでダイアログフラグメントから変数を取得し、それを呼び出すアクティビティに戻る
は活動です:
public class train extends AppCompatActivity {
public Integer customTimerlength = null;
public Integer timerDurationSeconds = 180; // 3 minutes is a good default value
public boolean timerIsPaused;
public long millisLeftOnTimer;
Button startBreakTimerButton;
Button stopBreakTimerButton;
Button pauseBreakTimerButton;
TextView breakTimerOutput;
CountDownTimer countdowntimer;
private CountDownTimer mCountDownTimer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_train);
startBreakTimerButton = (Button) findViewById(R.id.startBreakTimer);
stopBreakTimerButton = (Button) findViewById(R.id.stopBreakButton);
pauseBreakTimerButton = (Button) findViewById(R.id.pauseBreakButton);
breakTimerOutput = (TextView) findViewById(R.id.breakTimerOutput);
// Break timer long-click set time
breakTimerOutput.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
//customTimerlength = timerLengthInputAlert();
new RestDurationPicker().show(getFragmentManager(), "Session break length");
、ここでは、フラグメントである:
import android.widget.Toast;
import mobi.upod.timedurationpicker.TimeDurationPicker;
import mobi.upod.timedurationpicker.TimeDurationPickerDialogFragment;
public class RestDurationPicker extends TimeDurationPickerDialogFragment {
@Override
protected long getInitialDuration() {
return 0; // Default to empty
}
@Override
protected int setTimeUnits() {
return TimeDurationPicker.MM_SS;
}
@Override
public void onDurationSet(TimeDurationPicker view, long duration) {
Toast.makeText(getContext(), "New break duration set", Toast.LENGTH_LONG).show();
}
}
私はSO言及意図やインターフェイス上で、ここでかなりの数の答えを見つけたが、私はされていません何かを働かせることができ、私は迷っています。これは私の最初のAndroidアプリでの試みなので、何をすべきか分かりません。
本当にありがとうございます。
恐ろしく、ありがとう!私は今それを試してみるつもりです。インタフェース定義は断片に入っていますが、正しいのでしょうか? –
インターフェイス定義は、フラグメントまたはスタンドアロンファイルのいずれかに格納できます。 –
もう1つ質問があります。あなたは言った: 'public class TrainActivity implements DurationListener {}'。 私は電車に乗っている命名規則の問題を無視して、現在持っているのは 'public class train AppCompatActivity'です。 しかし、私はあなたの例を試してみるとエラーが出ます( 'クラストレインは抽象宣言でなければならず、DurationListenerで抽象メソッドonDurationSetting(long)を実装する必要があります)。私はそれがおそらく私が望んでいるほど簡単ではないことを知っています。ここにどんなアイデア? –