以更新从Java文件文本视图错误视图、文本、错误、文件

2023-09-04 06:57:05 作者:软的没边

很抱歉,这可能是一个简单的错误,新Android开发人员,但我一直在网上搜索寻找答案,其中没有一个解决方案,似乎工作。每次我尝试下面的失败运行code,任何想法,为什么/如何解决它。首先是java文件

 公共类服务延伸活动{
报告2  -  [R;
@覆盖
保护无效的onCreate(包savedInstanceState){
    super.onCreate(savedInstanceState);

    捆绑数据= getIntent()getExtras()。

    R = data.getParcelable(RemarksReport);

    的setContentView(R.layout.activity_services);

    TextView的sampleText =(TextView中)findViewById(R.id.services_text);
 

工程直至在这里,然后崩溃下一行

  sampleText.setText(任何东西);

    如果(savedInstanceState == NULL){
        getFragmentManager()的BeginTransaction()
                。新增(R.id.container,新PlaceholderFragment())提交()。
    }
}
 

在XML文件中的部分看起来像这样,

 <的TextView
        机器人:ID =@ + ID / services_text
        机器人:layout_width =match_parent
        机器人:layout_height =WRAP_CONTENT
        机器人:文字颜色=#000000
        机器人:TEXTSIZE =42PX
        机器人:文本=@字符串/ sample_services/>
 
8款受欢迎的代码编辑器,你喜欢用哪一款呢

,其中,这是一个表内,以线性布局。

logcat的错误:

  07-01 22:45:09.952:E / AndroidRuntime(8854):致命异常:主要
07-01 22:45:09.952:E / AndroidRuntime(8854):java.lang.RuntimeException的:无法启动的活动ComponentInfo {com.example.jasc / com.example.jasc.Services}:显示java.lang.NullPointerException
07-01 22:45:09.952:E / AndroidRuntime(8854):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1967)
07-01 22:45:09.952:E / AndroidRuntime(8854):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1992)
07-01 22:45:09.952:E / AndroidRuntime(8854):在android.app.ActivityThread.access $ 600(ActivityThread.java:127)
07-01 22:45:09.952:E / AndroidRuntime(8854):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1158)
07-01 22:45:09.952:E / AndroidRuntime(8854):在android.os.Handler.dispatchMessage(Handler.java:99)
07-01 22:45:09.952:E / AndroidRuntime(8854):在android.os.Looper.loop(Looper.java:137)
07-01 22:45:09.952:E / AndroidRuntime(8854):在android.app.ActivityThread.main(ActivityThread.java:4441)
07-01 22:45:09.952:E / AndroidRuntime(8854):在java.lang.reflect.Method.invokeNative(本机方法)
07-01 22:45:09.952:E / AndroidRuntime(8854):在java.lang.reflect.Method.invoke(Method.java:511)
07-01 22:45:09.952:E / AndroidRuntime(8854):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:823)
07-01 22:45:09.952:E / AndroidRuntime(8854):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:590)
07-01 22:45:09.952:E / AndroidRuntime(8854):在dalvik.system.NativeStart.main(本机方法)
07-01 22:45:09.952:E / AndroidRuntime(8854):由:显示java.lang.NullPointerException
07-01 22:45:09.952:E / AndroidRuntime(8854):在com.example.jasc.Services.onCreate(Services.java:30)
07-01 22:45:09.952:E / AndroidRuntime(8854):在android.app.Activity.performCreate(Activity.java:4465)
07-01 22:45:09.952:E / AndroidRuntime(8854):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
07-01 22:45:09.952:E / AndroidRuntime(8854):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1931)
 

解决方案

在你的碎片的 onCreateView 改变这样的:

  @覆盖
公共查看onCreateView(LayoutInflater充气,容器的ViewGroup,捆绑savedInstanceState){
    查看查看= inflater.inflate(R.layout.place_holder_fragment,集装箱,假);
    servicesTxtView =(TextView中)view.findViewById(R.id.services_text);
    servicesTxtView.setText(任何);
    返回查看;
}
 

正在试图初始化的TextView不使用它的容器视图。所以,你得到空指针异常,而你叫的setText 就可以了。

Sorry this may be a simple error, new to android dev, but I've been searching the web looking for answers and none of them solutions seem to work. Every time I try run the code below it fails, any ideas why/how to fix it. First is the java file

public class Services extends Activity {
Report2 r;  
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Bundle data = getIntent().getExtras();

    r = data.getParcelable("RemarksReport");

    setContentView(R.layout.activity_services);

    TextView sampleText = (TextView) findViewById(R.id.services_text);

works until here, then crashes at the next line

    sampleText.setText("ANYTHING");

    if (savedInstanceState == null) {
        getFragmentManager().beginTransaction()
                .add(R.id.container, new PlaceholderFragment()).commit();
    }
}

The part in the XML file looks like this,

        <TextView
        android:id="@+id/services_text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textColor="#000000"
        android:textSize="42px"
        android:text="@string/sample_services" />

where this is within a table, in a linear layout.

Logcat Errors :

07-01 22:45:09.952: E/AndroidRuntime(8854): FATAL EXCEPTION: main
07-01 22:45:09.952: E/AndroidRuntime(8854): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.jasc/com.example.jasc.Services}: java.lang.NullPointerException
07-01 22:45:09.952: E/AndroidRuntime(8854):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1967)
07-01 22:45:09.952: E/AndroidRuntime(8854):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1992)
07-01 22:45:09.952: E/AndroidRuntime(8854):     at android.app.ActivityThread.access$600(ActivityThread.java:127)
07-01 22:45:09.952: E/AndroidRuntime(8854):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1158)
07-01 22:45:09.952: E/AndroidRuntime(8854):     at android.os.Handler.dispatchMessage(Handler.java:99)
07-01 22:45:09.952: E/AndroidRuntime(8854):     at android.os.Looper.loop(Looper.java:137)
07-01 22:45:09.952: E/AndroidRuntime(8854):     at android.app.ActivityThread.main(ActivityThread.java:4441)
07-01 22:45:09.952: E/AndroidRuntime(8854):     at java.lang.reflect.Method.invokeNative(Native Method)
07-01 22:45:09.952: E/AndroidRuntime(8854):     at java.lang.reflect.Method.invoke(Method.java:511)
07-01 22:45:09.952: E/AndroidRuntime(8854):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:823)
07-01 22:45:09.952: E/AndroidRuntime(8854):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:590)
07-01 22:45:09.952: E/AndroidRuntime(8854):     at dalvik.system.NativeStart.main(Native Method)
07-01 22:45:09.952: E/AndroidRuntime(8854): Caused by: java.lang.NullPointerException
07-01 22:45:09.952: E/AndroidRuntime(8854):     at com.example.jasc.Services.onCreate(Services.java:30)
07-01 22:45:09.952: E/AndroidRuntime(8854):     at android.app.Activity.performCreate(Activity.java:4465)
07-01 22:45:09.952: E/AndroidRuntime(8854):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
07-01 22:45:09.952: E/AndroidRuntime(8854):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1931)

解决方案

Inside your Fragment's onCreateView change this:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.place_holder_fragment, container, false);
    servicesTxtView= (TextView) view.findViewById(R.id.services_text);
    servicesTxtView.setText("ANYTHING");
    return view;
}

You are trying to initialize textview without using its container view. So you are getting Null Pointer Exception while you call setText on it.