2017-01-07 2 views
1

TextView으로 인해 응용 프로그램이 다운됩니다. 장치가 방향을 변경하지 않는 한 작동합니다. TextView를 제거하고 장치를 회전 시키면 모든 것이 잘 작동하지만 TextView에서는 제대로 작동하지 않습니다.
세로 및 레이아웃 랜드에 2 가지 레이아웃이 있습니다.Android의 TextView로 인해 응용 프로그램이 충돌합니다.

<?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"> 

    <TextureView 
     android:id="@+id/texture" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

    <TextView 
     android:layout_width="220dp" 
     android:layout_height="50dp" 
     android:id="@+id/text_time" 
     android:textSize="20dp" 
     android:textColor="@color/red" 
     android:layout_marginTop="14dp" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentEnd="true" /> 

</RelativeLayout> 

그리고 일부 코드 :

public void onViewCreated(final View view, Bundle savedInstanceState) { 
     mTextView = (TextView) view.findViewById(R.id.text_time); 
     mTextView.setVisibility(View.INVISIBLE); 
} 

다음 다른 방법으로 내가 텍스트 설정 :
그들은 그 모습

mTextView.setVisibility(View.VISIBLE); 
mTextView.setText("Text"); 

을하고 그게 다에요. 왜 그런 효과가 없는지 제안 해 주시겠습니까?

01-07 17:14:28.117 12890-12890/k.com.kamera E/AndroidRuntime: FATAL EXCEPTION: main 
                    Process: k.com.kamera, PID: 12890 
                    java.lang.IllegalStateException: Fragment BasicFragmentVideo{e87fd0c} not attached to Activity 
                     at android.app.Fragment.getResources(Fragment.java:805) 
                     at android.app.Fragment.getString(Fragment.java:840) 
                     at k.com.kamera.BasicFragmentVideo$5$1$1.run(BasicFragmentVideo.java:483) 
                     at android.os.Handler.handleCallback(Handler.java:739) 
                     at android.os.Handler.dispatchMessage(Handler.java:95) 
                     at android.os.Looper.loop(Looper.java:168) 
                     at android.app.ActivityThread.main(ActivityThread.java:5845) 
                     at java.lang.reflect.Method.invoke(Native Method) 
                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:797) 
                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:687) 
+0

조각 인스턴스를 유지하려면 조각 클래스에서 setretaininstance를 사용하십시오. –

+0

작업 코드를 제공 할 수 있습니까? – hulapalu

답변

0

때마다 방향 변경, 당신은 조각의 새로운 인스턴스를 만들 :

나는 다음과 같은 오류가 발생합니다. 실제로 그 중 하나만 활동에 첨부됩니다. 방향이 발생하면이 조각 인스턴스를 유지합니다 조각에 사실대로 조각의 onCreateView() 또는 onActivityCreated()

+0

'Fragment'를 다음과 같이 추가합니다 : android.app.FragmentTransaction transaction = getFragmentManager(). beginTransaction(); transaction.replace (R.id.camera_frame, fragInfo); transaction.commit(); – hulapalu

+0

당신은'import android.app.fragment'를 사용하고 있습니까? – rafsanahmad007

+0

예. 장치가 회전하지 않는 한 작동합니다. 조각을 여는 활동에서 – hulapalu

0

사용 setRetainInstance이

public class TestActivity extends Activity { 

    TestFragment testFragment; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.test_activity); 
     attachFragment(savedInstanceState); 
    } 

    private void attachFragment(Bundle savedInstanceState) { 
     if (savedInstanceState == null){ 
      testFragment = new TestFragment(); 
      getFragmentManager().beginTransaction() 
      .replace(R.id.camera_frame, testFragment,  "testFragment").commitAllowingStateLoss(); 
    } else { 
     testFragment = (TestFragment)getFragmentManager().findFragmentByTag("testFragment"); 
    } 
} 

전화 setRetainInstance(true)을 시도하고 지금 Acitivty에 내부 당신의 조각을 검사 한 OnCreate 인스턴스 및 추가

+0

그래,하지만 내가 true로 설정하면 텍스트보기가 더 이상 존재하지 않습니다. 그것을 고치는 방법을 알고 있습니까? – hulapalu