2015-06-21 66 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);

 } 

}); ##打頭##

相關問題