无法在Android Studio中打开新的Activity

时间:2017-03-01 14:04:08

标签: java android

这是我的第一页代码,当我想启动一个Activity时,我有这个错误:

  

无法解析构造函数'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);
    }
}

2 个答案:

答案 0 :(得分:1)

您正尝试从Activity之外开始新的Context。在行中说contact.this时:

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

您指的是AsyncTask contact扩展的内容。你应该在那里传递一个Context。您可以将Context传递到类contact构造函数中。

Context传递到contact后,您将contact.this替换为:{/ p>

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

答案 1 :(得分:0)

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

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

}

然后使用startActivity(new Intent(context,packagename.mainpage.class));