2016-07-14 1 views
0

표시 크기가 작은 인 애플리케이션을 실행 해 봅니다.Android : 디스 패리 크기가 작을 때 ID가 설정되지 않습니다.

layout.xml

<RelativeLayout 
    android:id="@+id/layout_top" 
    android:layout_width="match_parent" 
    android:layout_height="50dp" 
    android:layout_alignParentTop="true" 
    android:alpha="0.77" 
    android:background="#000000" > 

    <ImageView 
     android:id="@+id/img_back" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_marginLeft="10dp" 
     android:src="@drawable/ic_ham_menu" /> 

    <TextView 
     android:id="@+id/txtback" 
     style="@style/textviewstyle_robotoRegular" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerVertical="true" 
     android:layout_marginLeft="5dp" 
     android:layout_toRightOf="@+id/img_back" 
     android:text="@string/msgs_to_rj_heading" 
     android:textColor="#CCFFFFFF" 
     android:textSize="20sp" /> 



<ImageView 
    android:id="@+id/img_alarm" 
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" 
    android:layout_alignParentRight="true" 
    android:layout_marginRight="15dp" 
    android:src="@drawable/ic_timer_default"  
    android:visibility="visible" /> 

</RelativeLayout> 

안드로이드 N 디스플레이 크기는 이미지가 작을 때 나는 "img_alarm"

img_alarm = (ImageView) rootView.findViewById(R.id.img_alarm); 

으로 ID를 가진의 ID를 참조하는 것을 시도하고있다 UI에 표시되지 않고 이미지 ID가 설정되지 않습니다. 디스플레이 크기를 변경하면 이 UI에 표시되고 해당 ID가 설정됩니다. java.lang.NullPointerException이 : 시도에 디스플레이 크기가

암 오류

에 의한 점점 안드로이드 N. 작은 때 을 표시되지 않는 이유는 받고 있지 않다

널 객체 참조

java.lang.RuntimeException: Unable to resume activity {org.radiomango.app/org.radiomango.app.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.widget.ImageView.getId()' on a null object reference 
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3385) 
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3425) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2698) 
at android.app.ActivityThread.-wrap12(ActivityThread.java) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1445) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:154) 
at android.app.ActivityThread.main(ActivityThread.java:6044) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.widget.ImageView.getId()' on a null object reference 
at org.radiomango.app.HomeFragment.onResume(HomeFragment.java:322) 
at android.app.Fragment.performResume(Fragment.java:2398) 
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1032) 
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1171) 
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1153) 
at android.app.FragmentManagerImpl.dispatchResume(FragmentManager.java:2049) 
at android.app.FragmentController.dispatchResume(FragmentController.java:198) 
at android.app.Activity.performResume(Activity.java:6783) 
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3362) 
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3425)  
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2698)  
at android.app.ActivityThread.-wrap12(ActivityThread.java)  
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1445)  
at android.os.Handler.dispatchMessage(Handler.java:102)  
at android.os.Looper.loop(Looper.java:154)  
at android.app.ActivityThread.main(ActivityThread.java:6044)  
at java.lang.reflect.Method.invoke(Native Method)  
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)  
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)  

에 ') INT android.widget.ImageView.getId ('가상 메소드를 호출 자바

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.activity_home, container, false); 
    img_alarm = (ImageView) rootView.findViewById(R.id.img_alarm); 
} 
@Override 
public void onResume() { 
    super.onResume(); 
if (TimeSet == true) { 
    img_alarm.setImageResource(R.drawable.ic_timer_default); 
} else { 
    img_alarm.setImageResource(R.drawable.ic_timer_active); 
} 
} 

은 변경 사항이 표시 변경 레이아웃에 필요한가요?

+0

오류 메시지가 있습니까? –

+0

질문이 명확하지 않습니다. 안드로이드 N 가진 디스플레이 크기가 작은 @Jas이'org.radiomango.app.HomeFragment' 코드 – Jas

+0

는 오류 메시지를 확인하십시오 수있는 오류 메시지 @Mande 키라 –

답변

-1

마지막으로 나는 안드로이드 N에서 디스플레이 크기가 작을 때 레이아웃 -sw320dp이라는 res 폴더의 레이아웃이 필요합니다.

이 레이아웃에 문제가있는 레이아웃입니다. 그러면 문제가 해결됩니다.

+1

@ id/img_alarm 요소가없는 우선 순위가 높은 레이아웃 디렉토리에 activity_home.xml이 정의되어 있지 않으면 필요하지 않습니다.또는 코드에 다른 문제가있을 수 있지만 "작은"디스플레이 크기를 지원하기 위해 동일한 XML 파일 레이아웃 (sw320dp)이 필요하지 않습니다. – alanv

관련 문제