Ath*_*eld 1 android android-fragments
我正在关注Android Udacity课程并且已经过时了,所以我尝试通过手动向主要活动添加片段来更新自己.这个代码构建正常,但在应用程序启动时崩溃,在Android监视器中给我一个veeery长错误.
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if(savedInstanceState == null)
{
getFragmentManager().beginTransaction().add(R.id.container,new PHFragment()).commit();
}
}
}
Run Code Online (Sandbox Code Playgroud)
public class PHFragment extends Fragment
{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
View rootView = inflater.inflate(R.layout.fragment_main, container, false);
// Inflate the layout for this fragment
return rootView;
}
}
Run Code Online (Sandbox Code Playgroud)
XML fragment_main.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.athomield.mysunshine.MainActivity"
android:touchscreenBlocksFocus="false">
<ListView
android:id="@+id/listview_forecast"
android:layout_width="match_parent"
android:layout_height="match_parent">
</ListView>
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)
activity_main.xml中
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.athomield.mysunshine.MainActivity"
android:touchscreenBlocksFocus="false">
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)
list_itemm_forecast.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/list_item_forecast_textview"
android:gravity="center_vertical"
>
</TextView>
Run Code Online (Sandbox Code Playgroud)
LOG
06-23 11:23:02.878 3095-3095/com.example.athomield.mysunshine W/System:ClassLoader引用未知路径:/data/app/com.example.athomield.mysunshine-1/lib/x86 06-23 11 :23:06.230 3095-3095/com.example.athomield.mysunshine W/System:ClassLoader引用未知路径:/data/app/com.example.athomield.mysunshine-1/lib/x86 06-23 11:23:06.408 3095-3105/com.example.athomield.mysunshine W/art:暂停所有线程:58.067ms 06-23 11:23:06.417 3095-3105/com.example.athomield.mysunshine I/art:背景粘性并发标记扫描GC释放13182(1591KB)AllocSpace对象,9(208KB)LOS对象,73%免费,991KB/3MB,暂停64.383ms总计75.476ms 06-23 11:23:06.509 3095-3095/com.example.athomield.mysunshine W/art:在Android 4.1之前,方法android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter,android.content.res.ColorStateList,android.graphics.PorterDuff $ Mode)会有错误的OVE rridden android.graphics.drawable.Drawable中的package-private方法06-23 11:23:06.685 3095-3101/com.example.athomield.mysunshine W/art:暂停所有线程:29.223ms 06-23 11:23 :06.772 3095-3095/com.example.athomield.mysunshine E/FragmentManager:找不到用于片段PHFragment的id 0x7f0b0054(com.example.athomield.mysunshine:id/container)的视图{ccbb2d0#0 id = 0x7f0b0054} 06-23 11:23:06.772 3095-3095/com.example.athomield.mysunshine E/FragmentManager:活动状态:06-23 11:23:06.773 3095-3095/com.example.athomield.mysunshine E/FragmentManager:Local FragmentActivity b704817 State :06-23 11:23:06.773 3095-3095/com.example.athomield.mysunshine E/FragmentManager:mCreated = falsemResumed = false mStopped = false mReallyStopped = false 06-23 11:23:06.773 3095-3095/com.example .athomield.mysunshine E/FragmentManager:mLoadersStarted = false 06-23 11:23:06.773 3095-3095/com.example.athomield.mysunshine E/FragmentManager:FragmentManager misc state:06-23 11:23:06.773 3095-3095/com.ex ample.athomield.mysunshine E/FragmentManager:mHost = android.support.v4.app.FragmentActivity$HostCallbacks@16b2c9 06-23 11:23:06.773 3095-3095/com.example.athomield.mysunshine E/FragmentManager:mContainer = android .support.v4.app.FragmentActivity $ HostCallbacks @ 16b2c9 06-23 11:23:06.773 3095-3095/com.example.athomield.mysunshine E/FragmentManager:mCurState = 1 mStateSaved = false mDestroyed = false 06-23 11:23 :06.773 3095-3095/com.example.athomield.mysunshine E/FragmentManager:查看层次结构:06-23 11:23:06.773 3095-3095/com.example.athomield.mysunshine E/FragmentManager:com.android.internal.policy .PhoneWindow $ DecorView {4998dce VE .... ... 0,0-0,0} 06-23 11:23:06.773 3095-3095/com.example.athomield.mysunshine E/FragmentManager:android.widget.LinearLayout {9ea54ef VE .... ... 0,0-0,0} 06-23 11:23:06.773 3095-3095/com.example.athomield.mysunshine E/FragmentManager:android.view.ViewStub {e812bfc GE. ...... 0,0-0,0#10203a9 android:id/action_mode_bar_stub} 06-23 11:23:06.773 3095-3095/com.example.athomield.mysunshine E/FragmentManager:android.widget.FrameLayout {94eb285 VE .... ... 0,0-0,0} 06-23 11:23:06.773 3095-3095/com.example.athomield.mysunshine E/FragmentManager:android.support.v7.widget.ActionBarOverlayLayout {8c4b8da VE .... ... 0,0-0,0#7f0b0043 app:id/decor_content_parent} 06-23 11:23:06.773 3095-3095/com .example.athomield.mysunshine E/FragmentManager:android.support.v7.widget.ContentFrameLayout {eb1510b VE .... ... 0,0-0,0#1020002 android:id/content} 06-23 11:23 :06.773 3095-3095/com.example.athomield.mysunshine E/FragmentManager:android.widget.RelativeLayout {1b30be8 VE .... ... 0,0-0,0} 06-23 11:23:06.773 3095- 3095/com.example.athomield.mysunshine E/FragmentManager:android.support.v7.widget.AppCompatButton {44cf201 VFED..C.... 0,0-0,0#7f0b0055 app:id/button} 06-23 11:23:06.773 3095-3095/com.example.athomield.mysunshine E/FragmentManager:android.support.v7.widget.AppCompatButton {44588a6 VFED..C.... 0,0-0,0#7f0b0056 app:id/button2} 06-23 11:23:06.773 3095-3095/com.example.athomield.mysunshine E/FragmentManager:android.support.v7.widget.ActionBarContainer {7a1f2e7 V.ED .... ... 0,0-0,0#7f0b0044 app:id/action_bar_container} 06-23 11:23:06.773 3095-3095/com.example.athomield.mysunshine E/FragmentManager: android.support.v7.widget.Toolbar {da0fe94 VE .... ... 0,0-0,0#7f0b0045 app:id/action_bar} 06-23 11:23:06.773 3095-3095/com.example. athomield.mysunshine E/FragmentManager:android.widget.TextView {595ad3d V.ED .... ... 0,0-0,0} 06-23 11:23:06.773 3095-3095/com.example.athomield. mysunshine E/FragmentManager:android.support.v7.widget.ActionBarContextView {5b18932 GE .... ... 0,0-0,0#7f0b0046 app:id/action_context_bar} 06-23 11:23:06.774 3095-3095 /com.example.athomield.mysunshine D/AndroidRuntime:关闭VM
--------- beginning of crash
Run Code Online (Sandbox Code Playgroud)
06-23 11:23:06.774 3095-3095/com.example.athomield.mysunshine E/AndroidRuntime:FATAL EXCEPTION:main进程:com.example.athomield.mysunshine,PID:3095 java.lang.RuntimeException:无法启动活动ComponentInfo {com.example.athomield.mysunshine/com.example.athomield.mysunshine.MainActivity}:java.lang.IllegalArgumentException:找不到片段PHFragment的id 0x7f0b0054(com.example.athomield.mysunshine:id/container)的视图{ ccbb2d0#0 id = 0x7f0b0054}在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)的android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)android.app.ActivityThread.-wrap11(ActivityThread.java) )android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1344)在android.os.Handler.dispatchMessage(Handler.java:102)在android.os.Looper.loop(Looper.java:148)在android .app.ActivityThread.main(ActivityThread.java:5417)位于com.android.internal.os.ZygoteIn的java.lang.reflect.Method.invoke(Native Method)它是$ MethodAndArgsCaller.run(ZygoteInit.java:726),位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)引起:java.lang.IllegalArgumentException:找不到id 0x7f0b0054的视图(com.example .athomield.mysunshine:id/container)片段PHFragment {ccbb2d0#0 id = 0x7f0b0054}在android.app.FragmentManagerImpl.moveToState(FragmentManager.java:965)android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1148)在android.app.BackStackRecord.run(BackStackRecord.java:793)的android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1535)在Android.app的android.app.FragmentController.execPendingActions(FragmentController.java:325). Activity.performStart(Activity.java:6252)位于android.app.A活动中的android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379),android.app.A活动. ActivityThread.java)在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:134 4)在android.o.Handler.dispatchMessage(Handler.java:102)的android.app.Looper.loop(Looper.java:148)在android.app.ActivityThread.main(ActivityThread.java:5417)的java.来自com.android.internal.os.ZygoteInit.main的com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726)中的lang.reflect.Method.invoke(Native Method)(ZygoteInit.java:616 )
在这里你可以这样:
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
.....
private FragmentTransaction mFragmentTransaction;
private FragmentManager mFragmentManager;
.....
mFragmentManager = getSupportFragmentManager();
mFragmentTransaction = mFragmentManager.beginTransaction();
mFragmentTransaction.replace(R.id.content_frame, new PhfFragment());
mFragmentTransaction.commit();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10745 次 |
| 最近记录: |