无法解析构造函数(Android Intent)
Posted
技术标签:
【中文标题】无法解析构造函数(Android Intent)【英文标题】:Cannot resolve constructor (Android Intent) 【发布时间】:2015-09-07 00:56:37 【问题描述】:我正在尝试创建一个打开不同活动的简单按钮:
package com.example.xxx.buttonexample;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;
import android.view.View;
import android.view.View.OnClickListener;
public class MainActivity extends Activity
Button button;
@Override
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnClick();
public void btnClick()
button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener()
@Override
public void onClick(View v)
Intent intent = new Intent(this,emergencyIntent.class);
startActivity(intent);
);
这是我的 EmergencyIntent.class 文件:
package com.example.xxx.buttonexample;
import android.app.Activity;
import android.os.Bundle;
public class emergencyIntent extends Activity
@Override
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
// The activity is being created.
我收到一个错误:
"无法解析构造函数'intent(匿名 android.view.View.OnClickListener, java.lang.Class(com.example.xxx.buttonexample.emergencyIntent))'。
【问题讨论】:
【参考方案1】:只需将第一个参数中的this
替换为MainActivity.this
。喜欢:
Intent intent = new Intent(MainActivity.this,emergencyIntent.class);
错误是因为您将其写入public void onClick(View v)
,其中“this
”表示实现View.OnClickListener
的匿名类的实例。而 Intent 构造函数 Intent(Context context, Class<?> cls)
中的第一个参数需要 Activity 上下文。
【讨论】:
【参考方案2】: package com.example.xxx.buttonexample;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;
import android.view.View;
import android.view.View.OnClickListener;
public class MainActivity extends Activity
Button button;
@Override
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener()
@Override
public void onClick(View v)
Intent intent = new Intent(MainActivity.this,emergencyIntent.class);
startActivity(intent);
//Or Intent intent = new Intent(getApplicationContext(),emergencyIntent.class);
);
【讨论】:
【参考方案3】:包 com.example.xxx.buttonexample;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;
import android.view.View;
import android.view.View.OnClickListener;
public class MainActivity extends Activity
Button button;
@Override
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener()
@Override
public void onClick(View v)
Intent intent = new Intent(MainActivity.this,emergencyIntent.class);
开始活动(意图); //或者Intent intent = new Intent(getApplicationContext(),emergencyIntent.class);
);## 标题##
【讨论】:
以上是关于无法解析构造函数(Android Intent)的主要内容,如果未能解决你的问题,请参考以下文章
Android - 无法解析方法'onActivityResult(int,int,android.content.Intent)