我想从非活动类调用一个活动,基类将一些参数作为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.
我该如何解决这个问题。
答案 0 :(得分:4)
案例1
案例2
我认为您应该使用Interface
,并且该回调会根据您的回复更改您的活动。
在ABC interface
和implement ABC
内写一些应该extend Activity or Fragment Activity.
因此Override
方法会在某个特定任务在某个时间完成时自动调用您的事件。
我认为这是从non extend Activity class.
请参阅如何使用简单示例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构造函数