[英]android - NullPointerException in Controlling XML file from .java file
我已經在我的MultipleID活動的XML文件中創建了一個TextView塊,它看起來如下(相對布局):
<TextView
android:id="@+id/multipleIDtext"
android:text="@string/multipleIDtext_val"
android:layout_width="wrap_context"
android:layout_height="Wrap_context"
/>
在MultipleID.java文件的onCreate()方法內部,我具有以下內容:
TextView textin = (TextView) findViewById(R.id.multipleIDtext);
然后,仍然在onCreate()方法中,我有以下幾行:
textin.setText(message+ikinci);
其中“ message + ikinci”是不為null的字符串值。
這將返回NullPointerException,我無法解決。
提前致謝
如有需要,
活動代碼:
package com.example.yengeliogullariaileagaci;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.widget.ListView;
import android.widget.TextView;
@SuppressLint("NewApi")
public class MultipleID extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
Bundle b = intent.getExtras();
String kendiIsmi= b.getString("isim");
int isimkactane = b.getInt("sayi");
int arrSayi = b.getInt("arrAdamSayisi");
String message = kendiIsmi + " isminde aile agacinda " + String.valueOf(isimkactane) + " tane kisi bulunmaktadir \nLutfen hangisi oldugunuzu belirtiniz";
StringBuilder s = new StringBuilder();
TextView textin = (TextView) findViewById(R.id.multipleIDtext);
for(int i=0;i<b.size()-3;i++)
{
s.append(b.getString("arrKendiIsmi"+i)+" "+b.getString("arrAnne"+i)+" "+b.getString("arrBaba"+i)+"\n");
}
String ikinci = "\n\n"+s.toString();
//TextView text = new TextView(this);
//text.setText(message+ikinci);
//text.setTextSize(15);
//setContentView(text);
textin.setText(message+ikinci);
getActionBar().setDisplayHomeAsUpEnabled(true);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.multiple_id, menu);
return true;
}
}
完整的XML:
<RelativeLayout 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=".MultipleID" >
<TextView
android:id="@+id/multipleIDtext"
android:text="@string/multipleIDtext_val"
android:layout_width="wrap_context"
android:layout_height="Wrap_context"
/>
</RelativeLayout>
記錄Cat錯誤日志:
09-08 14:15:12.546: E/AndroidRuntime(16292): FATAL EXCEPTION: main
09-08 14:15:12.546: E/AndroidRuntime(16292): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.yengeliogullariaileagaci/com.example.yengeliogullariaileagaci.MultipleID}: java.lang.NullPointerException
09-08 14:15:12.546: E/AndroidRuntime(16292): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2247)
09-08 14:15:12.546: E/AndroidRuntime(16292): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2297)
09-08 14:15:12.546: E/AndroidRuntime(16292): at android.app.ActivityThread.access$700(ActivityThread.java:152)
09-08 14:15:12.546: E/AndroidRuntime(16292): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1282)
09-08 14:15:12.546: E/AndroidRuntime(16292): at android.os.Handler.dispatchMessage(Handler.java:99)
09-08 14:15:12.546: E/AndroidRuntime(16292): at android.os.Looper.loop(Looper.java:137)
09-08 14:15:12.546: E/AndroidRuntime(16292): at android.app.ActivityThread.main(ActivityThread.java:5328)
09-08 14:15:12.546: E/AndroidRuntime(16292): at java.lang.reflect.Method.invokeNative(Native Method)
09-08 14:15:12.546: E/AndroidRuntime(16292): at java.lang.reflect.Method.invoke(Method.java:511)
09-08 14:15:12.546: E/AndroidRuntime(16292): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
09-08 14:15:12.546: E/AndroidRuntime(16292): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
09-08 14:15:12.546: E/AndroidRuntime(16292): at dalvik.system.NativeStart.main(Native Method)
09-08 14:15:12.546: E/AndroidRuntime(16292): Caused by: java.lang.NullPointerException
09-08 14:15:12.546: E/AndroidRuntime(16292): at com.example.yengeliogullariaileagaci.MultipleID.onCreate(MultipleID.java:41)
09-08 14:15:12.546: E/AndroidRuntime(16292): at android.app.Activity.performCreate(Activity.java:5250)
09-08 14:15:12.546: E/AndroidRuntime(16292): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1097)
09-08 14:15:12.546: E/AndroidRuntime(16292): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
09-08 14:15:12.546: E/AndroidRuntime(16292): ... 11 more
您缺少setContentView
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentview(R.layout.mylayout);
您需要先將布局的內容設置為活動,然后再初始化視圖。 findViewById()
在當前放大的布局中查找具有提供的ID的View。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.