【问题标题】:How to get the return of this method如何获得此方法的返回
【发布时间】:2018-04-05 15:07:45
【问题描述】:

我正在使用lib betterpickers,我尝试制作一个类以OOP形式获取其信息,但该方法没有返回,它是一个void,有没有办法获得这个返回?

public class Inflate implements CalendarDatePickerDialogFragment.OnDateSetListener{

private static final String FRAG_TAG_DATE_PICKER = "fragment_date_picker_name";

public void piker(FragmentManager supportFragmentManager){
    CalendarDatePickerDialogFragment cdp = new CalendarDatePickerDialogFragment()
            .setOnDateSetListener(this);
    cdp.show(supportFragmentManager, FRAG_TAG_DATE_PICKER);
}

@Override
public void onDateSet(CalendarDatePickerDialogFragment dialog, int year, int monthOfYear, int dayOfMonth) {
   //This is the method
}
}

我在 MainActivity 中这样称呼它:

Inflate inflate = new Inflate();

tes.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
           inflate.piker(getSupportFragmentManager());
        }
    });

我已经尝试过类似 onDateSet 调用另一个方法:

@Override
public void onDateSet(CalendarDatePickerDialogFragment dialog, int year, int monthOfYear, int dayOfMonth) {
    getData(year + "/" + monthOfYear + "/" + dayOfMonth);
}

public String getData(String data){
    return data;
}

但是,如果我打电话给派克,我将如何获得此反馈?这就是问题所在,有什么办法吗?因为在这个活动中,我有 4 个必须定义日期的地方,如果对于每个地方我都必须执行不同的方法,那么代码会变得很大。

文档:https://github.com/code-troopers/android-betterpickers

【问题讨论】:

  • @ADM 我看到了,不太明白,我是java kkkk的新手,如果你能用我的代码做一个例子我感谢:v
  • 使用监听接口。上面的链接显示了如何!您的代码中已经有一个监听器CalendarDatePickerDialogFragment.OnDateSetListener,所以您知道它是如何工作的。
  • @ADM 我弄好了,如果你想看看,谢谢

标签: android oop


【解决方案1】:

最后我做到了,我改变了方法,我这样做了:

public class Inflate{

    private static final String FRAG_TAG_DATE_PICKER = "fragment_date_picker_name";

    public void piker(FragmentManager supportFragmentManager, final TextView textView){
        CalendarDatePickerDialogFragment cdp = new CalendarDatePickerDialogFragment();
                cdp.setOnDateSetListener(new CalendarDatePickerDialogFragment.OnDateSetListener() {
                    @Override
                    public void onDateSet(CalendarDatePickerDialogFragment dialog, int year, int monthOfYear, int dayOfMonth) {
                        String data = year + "/" + monthOfYear + "/" + dayOfMonth;                 //After collecting the date I call the method in MainActivity
                        MainActivity.setData(data, textView);
                    }
                });

        cdp.show(supportFragmentManager, FRAG_TAG_DATE_PICKER);
    }
}

我称之为:

Inflate inflate = new Inflate();
tes.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
             //The date sets the value in the TextView, so I step to call the method
               inflate.piker(getSupportFragmentManager(), tes);
            }
        });

在MainActivity中,该方法接收并分配值给TextView:

public static void setData(String data, TextView textView) {
        textView.setText(data);
}

感谢@ADM

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-19
    • 2015-01-02
    • 2020-07-25
    • 2014-03-03
    • 2021-04-21
    • 2014-02-07
    • 2013-09-02
    相关资源
    最近更新 更多