监听器可以替换为lambda是什么意思?

时间:2015-06-10 09:35:00

标签: android lambda alertdialog android-alertdialog

我已经实现了['df1=pd.DataFrame.from_csv(C:...lng_11169_fid001, index_col = None)', 'df2=pd.DataFrame.from_csv(C:...lng_11169_fid002, index_col = None)'..... + 20 others] 正常的负面和正面按钮单击侦听器。

当我致电AlertDialog时,它向我显示了一条建议:new DialogInterface.OnClickListener()。我知道这不是错误或大事,但这个建议究竟是什么,我能做些什么呢?

Anonymous new DialogInterface.OnClickListener() can be replaced with lambda

AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setPositiveButton("Text", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // do something here } });

3 个答案:

答案 0 :(得分:96)

这意味着您可以缩短代码。

onClickListener() 没有 lambda:

的示例
mButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // do something here
    }
});

可以使用 lambda:

重写
mButton.setOnClickListener((View v) -> {
    // do something here
});

它是相同的代码。这在使用大量侦听器或在没有IDE的情况下编写代码时非常有用。 有关详情,请查看this

希望这能回答你的问题。

答案 1 :(得分:3)

这很简单:

button.setOnClickListener(view -> username = textView.getText());

答案 2 :(得分:3)

使用lambda表达式替换经典的新DialogInterface.OnClickListener()实现就足够了以下

 builder.setPositiveButton("resourceId", ((DialogInterface dialog, int which) -> {
      // do something here
 }));

它只是采用了onClick事件参数。