我正在尝试将一个活动转换为FragmentActivty对象,以便我可以获得FragmentManager对象
public class Main extends ListActivity {
...
public void showTimePickerDialog(View v) {
FragmentActivity myContext=(FragmentActivity) getApplicationContext(); //Here: java.lang.IllegalStateException: Could not execute method of the activity
FragmentManager fragManager = myContext.getFragmentManager();
DialogFragment newFragment = new uSharedUtility.TimePickerFragment();
newFragment.show(fragManager, "timePicker");
}
}
但是当我这样做时,我得到了:
java.lang.IllegalStateException: Could not execute method of the activity
我无法直接使用getFragmentManager
因为我的活动从ListActivity
延伸,这是非常必要的。
请建议我解决这个错误,我真的需要使用ListAdapter和amp;同一活动中的日期/时间选择器。
答案 0 :(得分:1)
您无法将应用程序上下文强制转换为活动,您必须需要活动上下文。
(FragmentActivity) getApplicationContext() // Not Possible
getContext():返回视图当前运行的上下文。通常是当前活动的Activity。
getApplicationContext():返回整个应用程序的上下文(所有活动在其中运行的进程)。如果您需要与整个应用程序的生命周期相关联的上下文,而不仅仅是当前的Activity,请使用此代替当前的Activity上下文。
答案 1 :(得分:1)
我无法直接使用
getFragmentManager
因为我的活动从ListActivity
延伸,这是非常必要的。
没有必要。您可以在任何活动中拥有ListView
。
由于您已经在使用片段,因此请考虑将ListFragment
与FragmentActivity
一起使用。