小编典典

请给我解释一下

java

我已经阅读了数百篇有关Java中“
this”的解释,但是我真的很难理解它。我正在并行学习android和java,我知道这样做比较难,但是我很喜欢。我被杀死的一件事是“
this”。我正在粘贴下面一次使用“ this”的教程中的代码。我本打算只编写一段代码,但希望尽可能提供帮助。

我正在寻找可以添加到笔记中的“ this”的良好解释。任何和所有帮助表示赞赏。提前致谢。

示例代码从下面开始:

import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;
import android.view.View;
import android.content.DialogInterface;
import android.app.Dialog;
import android.app.AlertDialog;

public class DialogActivity extends Activity {
    CharSequence[] items = { "Google", "Apple", "Microsoft" };
    boolean[] itemsChecked = new boolean [items.length];

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    public void onClick(View v) {
        showDialog(0);
    }

    @Override
    protected Dialog onCreateDialog(int id) {
        switch (id) {
        case 0:
            return new AlertDialog.Builder(this)
            .setIcon(R.drawable.ic_launcher)
            .setTitle("This is a dialog with some simple text...")

            .setPositiveButton("OK",
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton)
                    {
                        Toast.makeText(getBaseContext(),
                                "OK Clicked!", Toast.LENGTH_SHORT).show();
                    }
                }
            )
            .setNegativeButton("Cancel",
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton)
                    {
                        Toast.makeText(getBaseContext(),
                                "Cancel clicked!", Toast.LENGTH_SHORT).show();
                    }
                }
            )
            .setMultiChoiceItems(items, itemsChecked,
                    new DialogInterface.OnMultiChoiceClickListener() {
                        public void onClick(DialogInterface dialog,
                                int which, boolean isChecked) {
                                    Toast.makeText(getBaseContext(),
                                        items[which] + (isChecked ? " checked!":" unchecked!"),
                                        Toast.LENGTH_SHORT).show();
                    }
                }
            ).create();
        }
        return null;
    }
}

阅读 215

收藏
2020-11-16

共1个答案

小编典典

this引用当前Object的参考。

阅读本文以获得更多理解

通过链接给出一个例子:

public class Point {
    public int x = 0;
    public int y = 0;

    //constructor
    public Point(int x, int y) {
        this.x = x;
        this.y = y;
    }
}

在这里,为了xPointx的区别,您需要告诉编译器区别。您可以使用实现此目标this。意思是,当我写this.x这本书的时候,它意味着特定的x事物属于电流Object,在这种情况下是Point

以您提供的代码为例:

AlertDialog.Builder(this)

AlertDialog.Builder()Context在其构造函数中将a
作为参数。但是在这里,您不需要Context someContext = new Context();将其作为参数传递,因为您只需要传递当前Activity的即可Context。因此,您只需使用this

2020-11-16