getActivity() where it is defined?

2020-02-08 01:02发布

I'm very new to android and I'm following this example.

The code says we need to do these steps to get an dialog box:

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

// 2. Chain together various setter methods to set the dialog characteristics
builder.setMessage(R.string.dialog_message)
       .setTitle(R.string.dialog_title);

// 3. Get the AlertDialog from create()
AlertDialog dialog = builder.create();

But where does the getActivity() method is defined?

I can't find that method.

11条回答
迷人小祖宗
2楼-- · 2020-02-08 01:37

getActivity when you use then no need to put new... such as

PendingIntent pi=new PendingIntent.getActivity(this,0,intent,0); //is wrong

user it as :

PendingIntent pi=PendingIntent.getActivity(this,0,intent,0); //is Right code

here we remove new that provide new allocation but here it provide its allocation via getActivity in with in Activity(this).

查看更多
Juvenile、少年°
3楼-- · 2020-02-08 01:38

getActivity() is the member method of the super class Activity that you extend from . It is defined in the Activity class itself. infact onCreate(), onPause() and all other functions are themselves also defined in the parent Activity Class.

查看更多
老娘就宠你
4楼-- · 2020-02-08 01:41

The constructor AlertDialog.Builder expects a Context parameter. Context is accessible from Activity, Service etc, since they all extend Context, and can be passed as this.

The method getActivity() is declared as others have mentiond in the Fragment class.

查看更多
小情绪 Triste *
5楼-- · 2020-02-08 01:42

The getActivity() method gives the context of the Activity. You can use YourActivityName.this instead of it.

The method getActivity() is normally used in fragments to get the context of the activity in which they are inserted or inflated.

eg

AlertDialog.Builder builder = new AlertDialog.Builder(YourActivityName.this);

or if you are writing the code in your activity itself even

AlertDialog.Builder builder = new AlertDialog.Builder(this);

will workout. Please feel free to ask any doubts

查看更多
何必那么认真
6楼-- · 2020-02-08 01:42

This article describes how to create an AlertDialog in a Fragment. in Fragments, you can get the corresponding Activity by calling getActivity() method. but in your case i assume you are doing this in an Activity. so you don't have to call getActivity(). just use this

AlertDialog.Builder builder = new AlertDialog.Builder(this);
查看更多
登录 后发表回答