我正在尝试创建searchdate。我在这里做的是RijekSearch。java
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_rijek_search, container, false);
EditText start = (EditText) v.findViewById(R.id.startdateval);
start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FragmentManager fm = getFragmentManager();
DatePickerFragment myDialogFragment = new DatePickerFragment();
myDialogFragment.show(fm, "dialog_fragment");
}
});
return v;
}
下面是DatePickerFragment
public class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
return new DatePickerDialog(getActivity(), this, year, month, day);
}
@Override
public void onDateSet(DatePicker view, int year, int month, int day) {
Calendar c = Calendar.getInstance();
c.set(year, month, day);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String formattedDate = sdf.format(c.getTime());
Fragment fr = new RijekSearch();
FragmentManager fm=getFragmentManager();
FragmentTransaction ft=fm.beginTransaction();
Bundle args = new Bundle();
args.putString("startval", formattedDate);
fr.setArguments(args);
ft.replace(R.id.content_frame, fr);
ft.commit();
}
}
所以首先,我打开RijekSearch
,它是一个片段。然后单击start
(编辑文本)后,它将显示对话框片段
(DatePickerFragment)。显示没有问题,也没有错误。
我的问题是,我怎么能设置start
值后,我选择日期从我的DatePicker碎片
?
创建接口DateCallback
interface DateCallback{
void onDateSet(String fDate);
}
在DialogFragment
params中获取此
public class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {
private static DataCallback dataCallback;
public static DatePickerFragment newInstance(DataCallback dataCallback){
this.dataCallback = dataCallback;
return new DatePickerFragment();
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
return new DatePickerDialog(getActivity(), this, year, month, day);
}
@Override
public void onDateSet(DatePicker view, int year, int month, int day) {
Calendar c = Calendar.getInstance();
c.set(year, month, day);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String formattedDate = sdf.format(c.getTime());
FragmentManager fm=getFragmentManager();
dataCallback.onDateSet(formattedDate);
fm.popBackStack();
}
}
现在在你的RijekSearch
start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FragmentManager fm = getFragmentManager();
DatePickerFragment myDialogFragment = DatePickerFragment.newInstance(new DateCallback(){
@Override
public void onDateSet(String fDate){
start.setText(fDate);
}
});
myDialogFragment.show(fm, "dialog_fragment");
}
});
有两种方法可以做到这一点:1。创建公共静态editText(不推荐,内存泄漏)。2.创建侦听器并在对话框片段中传递实例。
您需要将EditText
data oneFragment
传递到DialogFragment
首先删除此start.setOnClickListener()
您可以使用这些
1-on文本更改监听器
2-焦点更改监听器
3-搜索和处理它的点击
在操作传递EditText
数据
Bundle args = new Bundle();
args.putString("key", "value");
DialogFragment newFragment = new YourDialogFragment();
newFragment.setArguments(args);
newFragment.show(getSupportFragmentManager(), "TAG");
并在DialogFragment
Bundle mArgs = getArguments();
String myValue = mArgs.getString("key");
问题内容: 我只是想从我在网上找到的许多android datepicker教程之一创建的datepicker对话框中获取日期。一旦选择了文本日期,我似乎在实际检索文本日期的某处出错。我有一个DatePickerFragment类,该类从嵌套在MainActivity活动类内的CreateEvent片段调用。这是DatePicker: 我知道实际尝试设置日期的时间,据我了解,这意味着它实际上无法在
如您所见,当按下按钮时,main activity运行“GetFromuser”函数。我想在该函数中获取edittext值。我该怎么做呢?
问题内容: 确实需要一些建议,不知道这里出了什么问题。 上下文:2个片段,每个片段都有一个Textview,主要活动有2个按钮和一个edittext 目的:在主活动的edittext框中键入hello,然后单击片段1的按钮,textview将变为hello。 问题: 在edittext中输入hello并单击按钮1时,会遇到运行时错误。 Logcat: fragment_one.xml activi
我有一个包含EditText的片段,当我单击该EditText时,会出现一个DatePicker对话框来选择日期。 FragmentFile 对话框片段 问题是我不知道如何将数据(选定日期)从DialogFraank传递到片段? 我读了一些主题,但这并没有帮助我感到困惑(抱歉再次提出这个问题)。 主题1主题2
想象一下,我有FragmentA,我从它开始DialogFraank(框中有)。如何将中的值取回FragmentA?我尝试制作这样的东西,但我没有成功。
如果从Fragment调用,我的DialogFragment会抛出ClassCastException,而如果从Activity调用,则会正常工作。我已经看了很少的其他问题与类似的问题,基本上是与进口有关的,但我没有能够解决在我的实现。下面是我对DialogFragment的实现。 下面是我使用上面的DialogFragment的片段: 这是错误日志: 我想知道有没有人能给出一个关于这个问题的提示