如何只调用一次传入另一个函数的函数?

时间:2016-06-09 01:08:09

标签: javascript callback closures

我试图只调用一次传递给另一个函数的函数。我的解决方案是错误的,任何帮助将不胜感激!

enter code here
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context="webservice.tablayout.teste"
    android:id="@+id/layout">

   <com.squareup.timessquare.CalendarPickerView
        android:id="@+id/calendarPV"
        android:layout_width="match_parent"
        android:layout_height="325dp" />
</RelativeLayout>


public class AgendarActivity extends AppCompatActivity implements View.OnClickListener {

    private Servico servico;

    private SimpleDateFormat sdFormat;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_agendar);

        Calendar nextYear = Calendar.getInstance();
        nextYear.add(Calendar.YEAR, 7);

        CalendarPickerView calendar = (CalendarPickerView) findViewById(R.id.calendarPV);
        Date today = new Date();

        calendar.init(today, nextYear.getTime()).withSelectedDate(today);
    }
}

2 个答案:

答案 0 :(得分:1)

我认为你不应该使用return语句,直到它被调用两次。不使用return语句尝试它。 或者你可以使用一些简单的方法,如:

function twoTimes(func){
 func();
 func();
}

答案 1 :(得分:1)

这是一种更简单的可能性。

另一件需要考虑的事情是,即使返回不存在,您也只能执行该函数,因为条件不匹配。试试

function nTimes(func, n){
    for (var i=0; i<n; i++){
         func();
    }
}

请注意,您示例中的count是不必要的。由于您已经有icount只是额外的工作。

仔细查看http://www.w3schools.com/js/js_functions.asp以获得更多熟悉度!