【问题标题】:Create buttons and text dynamically in JAVA ANDROID SDK在 JAVA ANDROID SDK 中动态创建按钮和文本
【发布时间】:2014-04-17 20:05:30
【问题描述】:

我在ANDROID SDK 中有一个错误,这个简单的代码:

LinearLayout layout1 = (LinearLayout) findViewById(R.id.layout1);

Button button1 = new Button(this);
button1.setText(R.string.button_misto);

TextView textView1 = new TextView(this);
textView1.setText("Something cool");

layout1.addView(textView1);

我只想在运行时创建对象。

我在这一行收到java.lang.NullPointerException

layout1.addView(textView1);

layout1.addView(button1);

这就像button1textView1NULL。我做错了什么?

这是错误:

04-17 22:52:18.046: E/FragmentManager(23649): No view found for id 0x7f05003c (com.example.app2:id/container) for fragment PlaceholderFragment{4057ebf8 #0 id=0x7f05003c}
04-17 22:52:18.046: E/FragmentManager(23649): Activity state:
04-17 22:52:18.046: D/FragmentManager(23649):   Local FragmentActivity 40574780 State:
04-17 22:52:18.046: D/FragmentManager(23649):     mCreated=truemResumed=false mStopped=false mReallyStopped=false
04-17 22:52:18.046: D/FragmentManager(23649):     mLoadersStarted=false
04-17 22:52:18.046: D/FragmentManager(23649):   Active Fragments in 405748c8:
04-17 22:52:18.046: D/FragmentManager(23649):     #0: PlaceholderFragment{4057ebf8 #0 id=0x7f05003c}
04-17 22:52:18.046: D/FragmentManager(23649):       mFragmentId=#7f05003c mContainerId=#7f05003c mTag=null
04-17 22:52:18.054: D/FragmentManager(23649):       mState=0 mIndex=0 mWho=android:fragment:0 mBackStackNesting=0
04-17 22:52:18.054: D/FragmentManager(23649):       mAdded=true mRemoving=false mResumed=false mFromLayout=false mInLayout=false
04-17 22:52:18.054: D/FragmentManager(23649):       mHidden=false mDetached=false mMenuVisible=true mHasMenu=false
04-17 22:52:18.054: D/FragmentManager(23649):       mRetainInstance=false mRetaining=false mUserVisibleHint=true
04-17 22:52:18.062: D/FragmentManager(23649):       mFragmentManager=FragmentManager{405748c8 in ForthActivity{40574780}}
04-17 22:52:18.062: D/FragmentManager(23649):       mActivity=com.example.app2.ForthActivity@40574780
04-17 22:52:18.062: D/FragmentManager(23649):   Added Fragments:
04-17 22:52:18.062: D/FragmentManager(23649):     #0: PlaceholderFragment{4057ebf8 #0 id=0x7f05003c}
04-17 22:52:18.062: D/FragmentManager(23649):   FragmentManager misc state:
04-17 22:52:18.062: D/FragmentManager(23649):     mActivity=com.example.app2.ForthActivity@40574780
04-17 22:52:18.062: D/FragmentManager(23649):     mContainer=android.support.v4.app.FragmentActivity$2@40574940
04-17 22:52:18.062: D/FragmentManager(23649):     mCurState=2 mStateSaved=false mDestroyed=false
04-17 22:52:18.070: D/FragmentManager(23649):   View Hierarchy:
04-17 22:52:18.070: D/FragmentManager(23649):     com.android.internal.policy.impl.PhoneWindow$DecorView{405755e0 V.E..... ... 0,0-0,0}
04-17 22:52:18.070: D/FragmentManager(23649):       android.widget.FrameLayout{405759b8 V.E..... ... 0,0-0,0}
04-17 22:52:18.070: D/FragmentManager(23649):         android.widget.LinearLayout{405762f0 V.E..... ... 0,0-0,0}
04-17 22:52:18.070: D/FragmentManager(23649):           android.support.v7.internal.widget.ActionBarContainer{40576710 V.ED.... ... 0,0-0,0 #7f05001b app:id/action_bar_container}
04-17 22:52:18.070: D/FragmentManager(23649):             android.support.v7.internal.widget.ActionBarView{40576e70 V.E..... ... 0,0-0,0 #7f05001c app:id/action_bar}
04-17 22:52:18.070: D/FragmentManager(23649):               android.widget.LinearLayout{4057b168 G.....C. ... 0,0-0,0}
04-17 22:52:18.070: D/FragmentManager(23649):                 android.widget.ImageView{4057bab8 G.ED.... ... 0,0-0,0 #7f050021 app:id/up}
04-17 22:52:18.078: D/FragmentManager(23649):                 android.widget.LinearLayout{4057bcf0 V.E..... ... 0,0-0,0}
04-17 22:52:18.078: D/FragmentManager(23649):                   android.widget.TextView{4057bf58 V.ED.... ... 0,0-0,0 #7f050022 app:id/action_bar_title}
04-17 22:52:18.078: D/FragmentManager(23649):                   android.widget.TextView{4057cb88 G.ED.... ... 0,0-0,0 #7f050023 app:id/action_bar_subtitle}
04-17 22:52:18.078: D/FragmentManager(23649):               android.support.v7.internal.widget.ActionBarView$HomeView{40577fa8 VFE...C. ... 0,0-0,0}
04-17 22:52:18.078: D/FragmentManager(23649):                 android.widget.ImageView{40579d18 G.ED.... ... 0,0-0,0 #7f050021 app:id/up}
04-17 22:52:18.078: D/FragmentManager(23649):                 android.widget.ImageView{4057a0e0 V.ED.... ... 0,0-0,0 #7f050014 app:id/home}
04-17 22:52:18.078: D/FragmentManager(23649):             android.support.v7.internal.widget.ActionBarContextView{4057d170 G.E..... ... 0,0-0,0 #7f05001d app:id/action_context_bar}
04-17 22:52:18.078: D/FragmentManager(23649):           android.widget.FrameLayout{4057d840 V.E..... ... 0,0-0,0 #1020002 android:id/content}
04-17 22:52:18.085: D/FragmentManager(23649):             android.widget.LinearLayout{4057ed38 V.E..... ... 0,0-0,0}
04-17 22:52:18.085: D/FragmentManager(23649):               android.widget.TextView{4057efe0 V.ED.... ... 0,0-0,0}
04-17 22:52:18.085: D/FragmentManager(23649):           android.support.v7.internal.widget.ActionBarContainer{4057daa8 G.ED.... ... 0,0-0,0 #7f05001e app:id/split_action_bar}
04-17 22:52:18.085: D/AndroidRuntime(23649): Shutting down VM
04-17 22:52:18.085: W/dalvikvm(23649): threadid=1: thread exiting with uncaught exception (group=0x40018578)
04-17 22:52:18.093: E/AndroidRuntime(23649): FATAL EXCEPTION: main
04-17 22:52:18.093: E/AndroidRuntime(23649): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.app2/com.example.app2.ForthActivity}: java.lang.IllegalArgumentException: No view found for id 0x7f05003c (com.example.app2:id/container) for fragment PlaceholderFragment{4057ebf8 #0 id=0x7f05003c}
04-17 22:52:18.093: E/AndroidRuntime(23649):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651)
04-17 22:52:18.093: E/AndroidRuntime(23649):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
04-17 22:52:18.093: E/AndroidRuntime(23649):    at android.app.ActivityThread.access$1500(ActivityThread.java:117)
04-17 22:52:18.093: E/AndroidRuntime(23649):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
04-17 22:52:18.093: E/AndroidRuntime(23649):    at android.os.Handler.dispatchMessage(Handler.java:99)
04-17 22:52:18.093: E/AndroidRuntime(23649):    at android.os.Looper.loop(Looper.java:130)
04-17 22:52:18.093: E/AndroidRuntime(23649):    at android.app.ActivityThread.main(ActivityThread.java:3687)
04-17 22:52:18.093: E/AndroidRuntime(23649):    at java.lang.reflect.Method.invokeNative(Native Method)
04-17 22:52:18.093: E/AndroidRuntime(23649):    at java.lang.reflect.Method.invoke(Method.java:507)
04-17 22:52:18.093: E/AndroidRuntime(23649):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
04-17 22:52:18.093: E/AndroidRuntime(23649):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
04-17 22:52:18.093: E/AndroidRuntime(23649):    at dalvik.system.NativeStart.main(Native Method)
04-17 22:52:18.093: E/AndroidRuntime(23649): Caused by: java.lang.IllegalArgumentException: No view found for id 0x7f05003c (com.example.app2:id/container) for fragment PlaceholderFragment{4057ebf8 #0 id=0x7f05003c}
04-17 22:52:18.093: E/AndroidRuntime(23649):    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:919)
04-17 22:52:18.093: E/AndroidRuntime(23649):    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
04-17 22:52:18.093: E/AndroidRuntime(23649):    at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
04-17 22:52:18.093: E/AndroidRuntime(23649):    at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467)
04-17 22:52:18.093: E/AndroidRuntime(23649):    at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:570)
04-17 22:52:18.093: E/AndroidRuntime(23649):    at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1129)
04-17 22:52:18.093: E/AndroidRuntime(23649):    at android.app.Activity.performStart(Activity.java:3802)
04-17 22:52:18.093: E/AndroidRuntime(23649):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1624)
04-17 22:52:18.093: E/AndroidRuntime(23649):    ... 11 more
04-17 22:53:37.367: W/KeyCharacterMap(23700): Can't open keycharmap file
04-17 22:53:37.367: W/KeyCharacterMap(23700): Error loading keycharmap file
04-17 22:53:37.367: W/KeyCharacterMap(23700): Using default keymap
04-17 22:53:52.750: W/KeyCharacterMap(23771): Can't open keycharmap file
04-17 22:53:52.750: W/KeyCharacterMap(23771): Error loading keycharmap file
04-17 22:53:52.750: W/KeyCharacterMap(23771): Using default keymap
04-17 22:55:58.898: W/KeyCharacterMap(23953): Can't open keycharmap file
04-17 22:55:58.898: W/KeyCharacterMap(23953): Error loading keycharmap file
04-17 22:55:58.898: W/KeyCharacterMap(23953): Using default keymap
04-17 22:56:00.164: D/dalvikvm(23953): GC_CONCURRENT freed 233K, 46% free 3170K/5831K, external 922K/1036K, paused 5ms+5ms
04-17 22:56:00.195: D/dalvikvm(23953): GC_FOR_MALLOC freed 54K, 47% free 3180K/5959K, external 922K/1036K, paused 29ms
04-17 22:56:00.234: D/dalvikvm(23953): GC_FOR_MALLOC freed 3K, 47% free 3305K/6151K, external 922K/1036K, paused 28ms
04-17 22:56:00.281: D/dalvikvm(23953): GC_FOR_MALLOC freed 7K, 47% free 3297K/6151K, external 922K/1036K, paused 32ms
04-17 22:56:00.328: D/dalvikvm(23953): GC_FOR_MALLOC freed 0K, 44% free 3809K/6727K, external 922K/1036K, paused 28ms
04-17 22:56:00.445: D/dalvikvm(23953): GC_CONCURRENT freed 2K, 44% free 3822K/6727K, external 922K/1036K, paused 4ms+3ms
04-17 22:56:01.242: W/KeyCharacterMap(23953): Can't open keycharmap file
04-17 22:56:01.242: W/KeyCharacterMap(23953): Error loading keycharmap file
04-17 22:56:01.242: W/KeyCharacterMap(23953): Using default keymap
04-17 22:56:28.757: D/dalvikvm(24107): GC_FOR_MALLOC freed 157K, 45% free 3227K/5767K, external 922K/1036K, paused 93ms
04-17 22:56:28.859: D/dalvikvm(24107): GC_FOR_MALLOC freed 46K, 45% free 3308K/5959K, external 922K/1036K, paused 96ms
04-17 22:56:29.007: D/dalvikvm(24107): GC_FOR_MALLOC freed 3K, 42% free 3817K/6535K, external 922K/1036K, paused 126ms
04-17 22:56:29.132: D/dalvikvm(24107): GC_CONCURRENT freed 18K, 42% free 3807K/6535K, external 922K/1036K, paused 4ms+4ms
04-17 22:56:29.664: W/KeyCharacterMap(24107): Can't open keycharmap file
04-17 22:56:29.664: W/KeyCharacterMap(24107): Error loading keycharmap file
04-17 22:56:29.664: W/KeyCharacterMap(24107): Using default keymap
04-17 22:56:30.757: D/AndroidRuntime(24107): Shutting down VM
04-17 22:56:30.757: W/dalvikvm(24107): threadid=1: thread exiting with uncaught exception (group=0x40018578)
04-17 22:56:30.765: E/AndroidRuntime(24107): FATAL EXCEPTION: main
04-17 22:56:30.765: E/AndroidRuntime(24107): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.app2/com.example.app2.ForthActivity}: java.lang.NullPointerException
04-17 22:56:30.765: E/AndroidRuntime(24107):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651)
04-17 22:56:30.765: E/AndroidRuntime(24107):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
04-17 22:56:30.765: E/AndroidRuntime(24107):    at android.app.ActivityThread.access$1500(ActivityThread.java:117)
04-17 22:56:30.765: E/AndroidRuntime(24107):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
04-17 22:56:30.765: E/AndroidRuntime(24107):    at android.os.Handler.dispatchMessage(Handler.java:99)
04-17 22:56:30.765: E/AndroidRuntime(24107):    at android.os.Looper.loop(Looper.java:130)
04-17 22:56:30.765: E/AndroidRuntime(24107):    at android.app.ActivityThread.main(ActivityThread.java:3687)
04-17 22:56:30.765: E/AndroidRuntime(24107):    at java.lang.reflect.Method.invokeNative(Native Method)
04-17 22:56:30.765: E/AndroidRuntime(24107):    at java.lang.reflect.Method.invoke(Method.java:507)
04-17 22:56:30.765: E/AndroidRuntime(24107):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
04-17 22:56:30.765: E/AndroidRuntime(24107):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
04-17 22:56:30.765: E/AndroidRuntime(24107):    at dalvik.system.NativeStart.main(Native Method)
04-17 22:56:30.765: E/AndroidRuntime(24107): Caused by: java.lang.NullPointerException
04-17 22:56:30.765: E/AndroidRuntime(24107):    at com.example.app2.ForthActivity.onCreate(ForthActivity.java:40)
04-17 22:56:30.765: E/AndroidRuntime(24107):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
04-17 22:56:30.765: E/AndroidRuntime(24107):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
04-17 22:56:30.765: E/AndroidRuntime(24107):    ... 11 more

编辑

ForthActivity.java http://pastebin.com/TDbHikXZ

activity_forth.xml

<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"
    tools:context="com.example.app2.ForthActivity"
    tools:ignore="MergeRootFrame" />

fragment_forth.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" 
    android:id="@+id/layout1"
    >

</LinearLayout>

【问题讨论】:

  • 你确定layout1 不为空吗?
  • 我认为您使用的是PlaceholderFragment,您必须将此代码放入您的Fragment 方法onCreateView()
  • layout1 不为空,看下贴...,而且我没有用Fragment,只是一个简单的应用程序,我只是想做一个JSON登录...

标签: java android android-layout android-intent android-listview


【解决方案1】:

layout1 为 null,可能您没有使用 setContentView 行,或者您的布局中不存在此视图。

【讨论】:

  • 显示您设置布局的位置。如果您使用的是 Fragment,请展示您的 onCreateView 方法实现
  • 我不使用fragment,只是一个简单的应用,看这里i62.tinypic.com/2mzi80w.jpg
  • 您正在使用名为PlaceholderFragment的片段显示.java此片段方法的代码
  • 您正在使用Fragment 并且布局在片段中!请在使用前阅读一些关于片段的教程。您的代码应该在PlaceholderFragment 类代码中的onActivityCreated() 方法中
  • 我正在 lynda.com 上做教程,我是片段 i.stack.imgur.com/f04gn.png
【解决方案2】:

这是因为您将内容视图设置为布局 activity_forth.xml 然后您通过 id (R.id.layout1) 调用查找视图,这不在此布局中。 您正在搜索当前布局中不存在的视图。

这应该让你开始 setContentView(R.layout.fragment_forth.xml); LinearLayout ll = () findViewById(R.id.layout1);

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多