从非活动类调用活动

时间:2013-12-20 08:30:23

标签: 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", ID);
   intent.putExtras(bundle);
   this.startActivity(intent);`

eclipse显示错误

  The constructor `Intent(UserSettingsFragment, Class<UserAccount>) is undefined.

我该如何解决这个问题。

3 个答案:

答案 0 :(得分:4)

案例1

  • 在我的情况下,我使用其他替代方法,例如将Activity或Context传递给构造函数,并使用该上下文,您可以调用Next活动。

案例2

  • 我认为您应该使用Interface,并且该回调会根据您的回复更改您的活动。

  • ABC interfaceimplement ABC内写一些应该extend Activity or Fragment Activity.

  • 的其他Java文件中的回调方法
  • 因此Override方法会在某个特定任务在某个时间完成时自动调用您的事件。

  • 我认为这是从non extend Activity class.

  • 调用Intent的简单方法
  • 请参阅如何使用简单示例here

  • 进行管理

答案 1 :(得分:2)

正如@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构造函数需要Context作为第一个参数。请参阅documentation

答案 2 :(得分:1)

使用getActivity()代替UserSettingsFragment.this

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