Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android TimePickerFragment两个按钮_Android_Android Timepicker - Fatal编程技术网

Android TimePickerFragment两个按钮

Android TimePickerFragment两个按钮,android,android-timepicker,Android,Android Timepicker,我有一个TimePickerFragment和一个onTimeSet在选择时间后执行操作。问题是,我有两个按钮选择时间,我不知道如何知道哪个用户使用。我尝试了一个开关,但它无法解析符号 如何知道用户选择哪个按钮 public class TimePickerFragment extends DialogFragment implements TimePickerDialog.OnTimeSetListener { ... public void onTimeSet(TimePicker vi

我有一个TimePickerFragment和一个onTimeSet在选择时间后执行操作。问题是,我有两个按钮选择时间,我不知道如何知道哪个用户使用。我尝试了一个开关,但它无法解析符号

如何知道用户选择哪个按钮

public class TimePickerFragment extends DialogFragment implements TimePickerDialog.OnTimeSetListener {

...

public void onTimeSet(TimePicker view, int hourOfDay, int minute) {

        switch(view) {
            case R.id.bstart: //cannot resolve symbol
                Toast.makeText(Objects.requireNonNull(getActivity()).getApplicationContext(), "button 1", Toast.LENGTH_SHORT).show();
                break;
            case R.id.bend:
                Toast.makeText(Objects.requireNonNull(getActivity()).getApplicationContext(), "button 2", Toast.LENGTH_SHORT).show();
                break;
        }


    }
如有需要: 我的按钮:

 <Button
        android:id="@+id/button"
...
/>

 <Button
        android:id="@+id/button2"
...
/>

您可以使TimePickerFragment的构造函数采用视图id。 在您的主要活动中:

DialogFragment newFragment = new TimePickerFragment(v.getId());
在TimePickerFragment中:

private String viewId;

public TimePickerFragment(String viewId) {
    super();
    this.viewId = viewId;
}

您可以使TimePickerFragment的构造函数采用视图id。 在您的主要活动中:

DialogFragment newFragment = new TimePickerFragment(v.getId());
在TimePickerFragment中:

private String viewId;

public TimePickerFragment(String viewId) {
    super();
    this.viewId = viewId;
}

您可以向片段中添加一个包

public void showTimePickerDialog(View v) {
    DialogFragment newFragment = new TimePickerFragment();
    Bundle args = new Bundle();
    args.putString("","");
    newFragment.setArguments(args);
    newFragment.show(getSupportFragmentManager(), "timePicker");
}
然后在片段类中,您可以使用

Bundle args = getArguments();
args.getString("","");

您需要进行适当的更改,因为此时我无法测试语法。但这就是如何将参数放入片段的一般思路。

您可以向片段中添加一个包

public void showTimePickerDialog(View v) {
    DialogFragment newFragment = new TimePickerFragment();
    Bundle args = new Bundle();
    args.putString("","");
    newFragment.setArguments(args);
    newFragment.show(getSupportFragmentManager(), "timePicker");
}
然后在片段类中,您可以使用

Bundle args = getArguments();
args.getString("","");

您需要进行适当的更改,因为此时我无法测试语法。但这就是如何将参数放入片段的一般思路。

TimePickerFragment中的
TimePickerFragment()不能应用于(int)
@RickJoe您将我在回答中显示的构造函数添加到您的TimePickerFragment类中了吗向我显示以下内容:
TimePickerFragment中的TimePickerFragment()不能应用于(int)
@RickJoe您添加了我在对TimePickerFragment类的回答中显示的构造函数?
public void showTimePickerDialog(View v) {
    DialogFragment newFragment = new TimePickerFragment();
    Bundle args = new Bundle();
    args.putString("","");
    newFragment.setArguments(args);
    newFragment.show(getSupportFragmentManager(), "timePicker");
}