2014-04-15 7 views
2

단순한 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)

+1

그것은 '해야하는 데 도움이 TextView textView = (TextView) contentView.findViewById (R.id.ormTextView);'그렇다면 단순히'setContentView (R.layout.orm_event_list); –

답변

1

TextView textView = (TextView) findViewById(R.id.ormTextView); 

그래서

TextView textView = (TextView) contentView .findViewById(R.id.ormTextView); 

희망으로 대체하는 것입니다 해결 다음 줄에있는 당신의 누락있는 contentView 참조이

관련 문제