Android Intent Cannot resolve constructor

匿名 (未验证) 提交于 2019-12-03 01:12:01

问题:

I have a first class extending Fragment, and a second class extending Activity.

My Fragment is working fine, and my code for the Intent in the Fragment is :

ImageButton button= (ImageButton) getView().findViewById(R.id.button);     button.setOnClickListener(new View.OnClickListener() {         @Override         public void onClick(View v) {             Intent myIntent = new Intent(MyFragment.this, MyClass.class);             MyFragment.this.startActivity(myIntent);            }     }); 

My class MyClass code is :

public class MyClass extends Activity {     @Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         // The activity is being created.     }      @Override     protected void onStart() {         super.onStart();          setContentView(R.layout.MyClass);     }  } 

The error is :

Gradle: cannot find symbol constructor Intent(com.xxxx.xxxx.MyFragment,java.lang.Class)

I don't know where I went wrong.

回答1:

Use

Intent myIntent = new Intent(v.getContext(), MyClass.class); 

or

 Intent myIntent = new Intent(MyFragment.this.getActivity(), MyClass.class); 

to start a new Activity. This is because you will need to pass Application or component context as a first parameter to the Intent Constructor when you are creating an Intent for a specific component of your application.



回答2:

Or you can simply start the activity as shown below;

startActivity( new Intent(currentactivity.this, Tostartactivity.class)); 


回答3:

You Can not Use the Intent's Context for Creating Intent. So You need to use your Fragment's Parent Activity Context

Intent intent = new Intent(getActivity(),MyClass.class); 


回答4:

You may use this:

Intent intent = new Intent(getApplicationContext(), ClassName.class); 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!