无法解析构造器(Android的意图) [英] Cannot resolve constructor (Android Intent)

查看:1246
本文介绍了无法解析构造器(Android的意图)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图创建一个打开一个不同的活动一个简单的按钮:

 包com.example.xxx.buttonexample;

进口android.app.Activity;
进口android.content.Intent;
进口android.os.Bundle;
进口android.widget.Button;
进口android.view.View;
进口android.view.View.OnClickListener;

公共类MainActivity延伸活动{

Button按钮;
@覆盖
公共无效的onCreate(包savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.activity_main);
    btnClick();
}
公共无效btnClick(){
    按钮=(按钮)findViewById(R.id.button1);
    button.setOnClickListener(新OnClickListener(){
        @覆盖
        公共无效的onClick(视图v)
        {
            意向意图=新的意图(这一点,emergencyIntent.class);
            startActivity(意向);
        }
    });
}
}
 

下面是我的emergencyIntent.class文件:

 包com.example.xxx.buttonexample;

进口android.app.Activity;
进口android.os.Bundle;

公共类emergencyIntent扩展活动
{

@覆盖
公共无效的onCreate(包savedInstanceState)
{
    super.onCreate(savedInstanceState);
    //活动正在创建。

}

}
 

我收到一个错误:

  

无法解析的构造函数的意图(匿名   android.view.View.OnClickListener,   java.lang.Class中(com.example.xxx.buttonexample.emergencyIntent))。

解决方案

只需更换与第一个参数 MainActivity.this 。这样的:

 意向意图=新的意图(MainActivity.this,emergencyIntent.class);
 

这个错误是因为你写它公共无效的onClick(视图v),其中将意味着类的实例,它实现 View.OnClickListener 。而在意向构造函数的第一个参数意图(上下文packageContext,类<> CLS)。要求MainActivity背景

I'm trying to create a simple button that opens to a different activity:

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);
        }
    });
}
}

Here is my emergencyIntent.class file:

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.

}

}       

I received a error:

"Cannot resolve constructor 'intent(anonymous android.view.View.OnClickListener, java.lang.Class(com.example.xxx.buttonexample.emergencyIntent))'.

解决方案

Just replace this in first parameter with MainActivity.this. like:

 Intent intent = new Intent(MainActivity.this,emergencyIntent.class);

The error is because you are writing it in public void onClick(View v), where 'this' will mean instance of class that implements View.OnClickListener. while first parameter in Intent constructor Intent(Context packageContext, Class<?> cls) requires MainActivity context.

这篇关于无法解析构造器(Android的意图)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆