Android 从非活动类调用活动

Android 从非活动类调用活动,android,Android,我想从非活动类调用活动,基类将一些参数作为bundle发送。但是当我添加以下代码时 final Intent intent = new Intent(UserSettingsFragment.this, UserAccount.class); /*Sending some arguments*/ Bundle bundle = new Bundle(); bundle.putString("UserName",NAME); bundle.putString("Id", I

我想从非活动类调用活动,基类将一些参数作为bundle发送。但是当我添加以下代码时

 final Intent intent = new Intent(UserSettingsFragment.this, UserAccount.class);
  /*Sending some arguments*/ 
  Bundle bundle = new Bundle();
   bundle.putString("UserName",NAME);
   bundle.putString("Id", ID);
   intent.putExtras(bundle);
   this.startActivity(intent);`
eclipse显示了错误

  The constructor `Intent(UserSettingsFragment, Class<UserAccount>) is undefined.
构造函数的意图(UserSettingsFragment,Class)未定义。
如何解决此问题。

使用
getActivity()
而不是
UserSettingsFragment。此

我猜你试着从片段开始另一个活动。如果是这样,那么您必须将片段的父活动的上下文传递给意图构造函数

  • 在我的例子中,我使用了其他替代方法,比如将活动或上下文传递到构造函数中,并使用该上下文可以调用下一个活动
案例2

  • 我认为您应该使用
    接口
    ,该回调将根据您的响应更改您的活动

  • ABC接口中编写回调方法
    ,并在其他一些Java文件中实现ABC,该文件应
    扩展活动或片段活动。

  • 这样,当某个特定任务在某个时间完成时,
    Override
    方法将自动调用您的事件

  • 我认为这是从
    非扩展活动类调用Intent的简单而最好的方法。

  • 请参见如何使用简单的示例来管理此问题

正如@Gooziec所说:

您需要以这种方式重写代码:

// If you are calling this for in a Fragment.
final Intent intent = new Intent(getActivity(), UserAccount.class);
/*Sending some arguments*/ 
Bundle bundle = new Bundle();
bundle.putString("UserName",NAME);
bundle.putString("Id", ID);
intent.putExtras(bundle);
this.startActivity(intent);`

您使用的
Intent
构造函数需要一个作为第一个参数。请参阅。

UserSettingsFragment是否为片段类??此处为非活动和活动类?您的
用户帐户是否为活动?请显示您的
UserAccount
class代码。同时发布完整的logcat错误。不知道为什么有人否决了这个答案。考虑到这个不完整的问题,这是我们能做出的最接近的假设。Fragment类有一个getActivity()方法,您应该将UserSettingsFragment.this替换为