2015-06-21 138 views
6

我试图创建一个简单的按钮打开一个不同的活动:无法解析的构造函数(Android的意图)

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. 

} 

}  

一个错误:

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

回答

18

只是MainActivity.this取代this在第一个参数。像:

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

的错误是因为你在public void onClick(View v),其中“this”将意味着实现View.OnClickListener匿名类的实例写它。而Intent构造函数Intent(Context context, Class<?> cls)中的第一个参数需要Activity上下文。

0

与下面的一个替换您的意图:

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

+0

请问这个答案从@KrupalShah给出的有什么不同?其实这是完全错误的。 'Activity'没有'getActivity()'方法。所以它永远不会工作。 – Sufian

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

      } 
     }); 
    } 
    } 
0

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); //或Intent intent = new Intent(getApplicationContext(),emergencyIntent.class);

 } 

}); ##打头##

相关问题