단순한 TextView를 사용하여 한 활동에서 다른 활동으로 옮길 때 - 작동합니다. 코드의 조각 :안드로이드 - ViewGroup을 사용하는 NullPointerException
private RMProject currentProject;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.open_proj);
Bundle bundle = getIntent().getExtras();
currentProject = bundle.getParcelable("current");
TextView textView = (TextView) findViewById(R.id.label_open_project);
textView.setText("Project "+currentProject.getName());
}
하지만 의 다음 코드에서 onCreate를 다른 활동을 사용할 때() 방법 - 그것은 작동하지 않습니다 내가 NullPointerException이 나타납니다. 38 번 라인. 나는 첫 번째 코드를 사용할 때 textView를 수신했는지 확인했다.
public class EventsActivity extends Activity {
private RMProject currentProject;
private ListView listView;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EventDBManager.init(this);
ViewGroup contentView = (ViewGroup) getLayoutInflater().inflate(R.layout.orm_event_list, null);
listView = (ListView) contentView.findViewById(R.id.ormListView);
Bundle bundle = getIntent().getExtras();
currentProject = bundle.getParcelable("current");
TextView textView = (TextView) findViewById(R.id.ormTextView);
//38 line - next, which cause exception
textView.setText("Project "+currentProject.getName());
Button btn = (Button) contentView.findViewById(R.id.ormButtonAdd);
setupButton(btn);
setContentView(contentView);
}
}
구성 요소 레이아웃에 문제가 있다고 생각합니다. 내가받은했습니다
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:editable="true"
android:text="Project name"
android:id="@+id/ormTextView"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true"
android:layout_marginLeft="90dp"
android:textSize="20dp"/>
<Button
android:id="@+id/ormButtonAdd"
android:layout_alignParentBottom="true"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Add " />
<ListView
android:id="@+id/ormListView"
android:layout_above="@id/ormButtonAdd"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</RelativeLayout>
그리고 예외 :
04-15 18 : 26 : 29.209 1401년에서 1401년까지/nikolay.rm E/AndroidRuntime : 치명적인 예외 여기 내 레이아웃 파일입니다 : 주 프로세스 : nikolay.rm, PID : 1401 java.lang.RuntimeException : 활동을 시작할 수 없습니다. ComponentInfo {nikolay.rm/nikolay.rm.activities.EventsActivity} : java.lang.NullPointerException android.app. ActivityThread.performLaunchActivity (ActivityThread.java:2195) atr oid.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2245) android.app.ActivityThread.access의 $ 800 (ActivityThread.java:135) android.app.ActivityThread의 $ H.handleMessage (ActivityThread.java:1196) android.os.Handler.dispatchMessage (Handler.java:102) android.os.Looper.loop (Looper.java:136)의 android.app.ActivityThread.main (ActivityThread.java:5017)의 의 자바에서 .lang.reflect.Method.invokeNative (네이티브 메소드) at java.lang.reflect.Method.invoke (Method.java:515) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java : 779) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:595) at dalvik.system.NativeStar t.main (기본 방법) 가에 의해 발생 : nikolay.rm.activities.EventsActivity.onCreate (EventsActivity.java:38)에서 java.lang.NullPointerException이 android.app.Activity.performCreate (Activity.java에서 : 5231) android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1087) android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2159) android.app.ActivityThread.handleLaunchActivity에서 에서 (ActivityThread.java:2245에서 ) android.app.ActivityThread.access $ 800 (ActivityThread.java:135) android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1196) android.os.Handler.dispatchMessage (Handler.java:102) android.os.Looper.loop (Looper.java:136)의 android.app.ActivityThread.main (ActivityThread.java:5017)의 의 자바에서 .lang.reflect.Method.invokeNative (네이티브 메소드) at java.lang.reflect.Method.invoke (Method.자바 : 515)
그것은 '해야하는 데 도움이 TextView textView = (TextView) contentView.findViewById (R.id.ormTextView);'그렇다면 단순히'setContentView (R.layout.orm_event_list); –