[英]Calling activity intent in Fragment in Android
我试图从一个片段中调用一个活动类。 我已经实现了OnClickListener及其方法。
if(v.getId() == sortbutton.getId())
{
//callSorting();
Intent intent = new Intent(getActivity(), EMB_SortList.class);
//startActivityForResult(intent, REQUEST_CODE_LEVEL);
startActivity(intent);
}
这是我的Java文件:
public class ListViewFragment extends Fragment implements OnClickListener
{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
if (rootView != null)
{
ViewGroup parent = (ViewGroup) rootView.getParent();
if (parent != null)
parent.removeView(rootView);
}
try
{
rootView = inflater.inflate(R.layout.list, container, false);
}
catch (InflateException e)
{
}
sortbutton = (TextView) rootView.findViewById(R.id.sortText);
sortbutton.setOnClickListener(this);
return rootView;
}
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
}
但我遇到一个奇怪的错误。
03-16 19:40:20.620: E/AndroidRuntime(1346): FATAL EXCEPTION: main
03-16 19:40:20.620: E/AndroidRuntime(1346): android.app.SuperNotCalledException: Activity {com.ylg.Link/com.ylg.Link.SortList} did not call through to super.onCreate()
03-16 19:40:20.620: E/AndroidRuntime(1346): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2259)
03-16 19:40:20.620: E/AndroidRuntime(1346): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2349)
03-16 19:40:20.620: E/AndroidRuntime(1346): at android.app.ActivityThread.access$700(ActivityThread.java:159)
03-16 19:40:20.620: E/AndroidRuntime(1346): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316)
03-16 19:40:20.620: E/AndroidRuntime(1346): at android.os.Handler.dispatchMessage(Handler.java:99)
03-16 19:40:20.620: E/AndroidRuntime(1346): at android.os.Looper.loop(Looper.java:176)
03-16 19:40:20.620: E/AndroidRuntime(1346): at android.app.ActivityThread.main(ActivityThread.java:5419)
03-16 19:40:20.620: E/AndroidRuntime(1346): at java.lang.reflect.Method.invokeNative(Native Method)
03-16 19:40:20.620: E/AndroidRuntime(1346): at java.lang.reflect.Method.invoke(Method.java:525)
03-16 19:40:20.620: E/AndroidRuntime(1346): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
03-16 19:40:20.620: E/AndroidRuntime(1346): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
03-16 19:40:20.620: E/AndroidRuntime(1346): at dalvik.system.NativeStart.main(Native Method)
我不确定这里出什么问题了吗? 有人可以帮我解决这个问题吗?
谢谢!
显然,此类未使用正确的方法onCreate
EMB_SortList.class
您需要检查四倍
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
实际上,您需要用我们的答案之一替换它,并确保您要扩展Activity。
--------------------->开发人员,我认为您将此代码放在了片段中。
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
}
如果已删除,则需要将其删除。
该代码不会出现在您的片段中,而会出现在您要创建的活动中。
加入this.getActivity()
中的位置getActivity()
if(v.getId() == sortbutton.getId())
{
//callSorting();
Intent intent = new Intent(this.getActivity(), EMB_SortList.class);
//startActivityForResult(intent, REQUEST_CODE_LEVEL);
startActivity(intent);
}
android.app.SuperNotCalledException:活动{com.ylg.Link/com.ylg.Link.SortList}没有调用到super.onCreate()
您似乎忘记了在活动的onCreate()
方法中调用super.onCreate()
方法
在EMB_Sortlist.java类中添加
public void onCreate(Bundle savedInstanceState) {
//You should override the below method
super.onCreate(savedInstanceState);
//Do your work here
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.