2017-03-01 40 views
0

這是我的第一頁的代碼,當我要開始的活動我有這樣的錯誤:無法在Android Studio中打開新的活動

Cannot resolve constructor 'Intent(com.example.loginpage.contact,java.lang.Class)'

public class contact extends AsyncTask<String,Void,String>{ 
Context context; 
contact (Context ctx){ 
    context = ctx; 
} 
protected void onPostExecute(String result) { 
     alertDialog.setMessage(result); 
     if (result.equals("Wrong email or password.")) { 

     } else 
     { 
      context.startActivity(new Intent(contact.this,mainpage.class)); 
     } 
     alertDialog.show(); 
    } 
} 

我想打開這個活動:

public class mainpage extends Activity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.mainpage); 
     String username = getIntent().getStringExtra("Username"); 
     TextView tv = (TextView)findViewById(R.id.username); 
     tv.setText(username); 
    } 
} 

回答

1

您正試圖從Context以外開始新的Activity。當你在該行說contact.this

startActivity(new Intent(contact.this,mainpage.class));

你指的是一個AsyncTask因爲這就是contact延伸。相反,您應該通過Context。您可以通過將Context傳入您的類contact的構造函數來實現。

一旦你有Context傳入contact更換contact.this有:

context.startActivity(new Intent(context, mainpage.class));

+0

我已經做了 – Sergey

+0

我剛看到你的編輯。你需要將'Context'傳遞給構造函數。 –

+0

我不明白如何在這裏使用它 – Sergey

0
public class contact extends AsyncTask<String, Void, String> { 
    Context context; 

    contact(Context context) { 
     this.context = context; 
    } 
    //yout other staff 

} 

然後使用startActivity(新意圖(背景下,packagename.mainpage.class));