我的要求:
public class MainFragment extends Fragment implements OnClickListener,OnDisplayListener {
static TextView displayDuration;
TextView setDuration;
public MainFragment() {
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
View v = inflater.inflate(R.layout.fragment_one, container, false);
displayDuration = (TextView) v.findViewById(R.id.displayDuration);
setDuration = (TextView) v.findViewById(R.id.setDuration);
setDuration.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
DialogFragment durationPicker = new DurationFragment();
durationPicker.show(getActivity().getFragmentManager(), "dialog");
}
});
return v;
}
@Override
public void ondurationSubmit(String duration) {
// Do stuff
displayDuration.setText(duration);
}
}
public interface OnDisplayListener {
public void ondurationSubmit(String duration);
}
public static class DurationFragment extends DialogFragment implements OnSeekBarChangeListener {
OnDisplayListener callback;
TextView vsProgress, vs_reverseProgress = null;
TextView levelTxt=null;
static DurationFragment newInstance() {
return new DurationFragment();
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View content = inflater.inflate(R.layout.dialog_setting2, null);
levelTxt = (TextView) content.findViewById(R.id.textView);
SeekBar levelSeek = (SeekBar) content.findViewById(R.id.seek_bar_voice_volume);
levelSeek.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
// change to progress
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
levelTxt.setText(Integer.toString(progress) + " min");
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
builder.setView(content);
builder.setMessage("Your Time")
// Positive button
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// add value to the interface method
callback.ondurationSubmit(levelTxt.getText().toString());
}
});
return builder.create();
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
}
发现错误:
callback.ondurationSubmit(levelTxt.getText().toString());
在这一行中..为什么值不显示在mainfragment中??
在DurationFragment中添加一个新的构造函数:
public DurationFragment( OnDisplayListener callback) {
this.callback = callback;
}
在MainFragment中,在onClick中执行以下操作:
DialogFragment durationPicker = new DurationFragment(MainFragment.this);
我正在尝试将数据从DialogFraank发送到创建此对话框的Fraank。在目标片段中,我使用以下代码: 我还在fragment实现了我的接口: 在DialogFragment中,我使用以下代码: 并发送数据: 我还试图从这个问题中使用onActivityResult(): 接收数据: 但我没有收到数据:(((
现在我有:- 1) 1活动,它是从AppCompactActivity扩展而来的主要活动。 2) 1扩展自fragment的类,这是从主活动(1)-ProfileTeacherActivity调用的片段。java 3) 1个从DialogFragment扩展的fragment类,此对话框从fragment(2)-ModalBox调用。java 所以,基本上,这只是一个简单的执行流程。开始时,显示的
我想让对话框片段(DialogFragment)向我返回一个值,该值是在退出时在编辑数量(editQuantity)中输入的。 但我没有办法让它发挥作用。我可以通过将值传递给intent来实现这一点,但这会破坏当前活动的进度。 除了传递意图之外,还有什么方法可以返回我的值吗?
我正在尝试创建searchdate。我在这里做的是 下面是 所以首先,我打开,它是一个片段。然后单击(编辑文本)后,它将显示(DatePickerFragment)。显示没有问题,也没有错误。 我的问题是,我怎么能设置值后,我选择日期从我的?
生成的路径应该传递给片段,我通过本课中的活动使用接口来练习这一点 此解决方案工作良好,直到用户不改变设备的方向。 当设备在DialogFragment阶段或裁剪活动阶段旋转时,第一个活动和fragemnt被重新创建,并且DialogFragment的实例被销毁。所以我的回调没有运行,什么也没有发生。让我给你看代码: 设置单元活动 AddNewUnitFragment 对话框ImageSelect
我有一个包含EditText的片段,当我单击该EditText时,会出现一个DatePicker对话框来选择日期。 FragmentFile 对话框片段 问题是我不知道如何将数据(选定日期)从DialogFraank传递到片段? 我读了一些主题,但这并没有帮助我感到困惑(抱歉再次提出这个问题)。 主题1主题2