EditText의 텍스트에 따라 동적으로 추가 및 제거하려는 TextView가 있습니다. 현재 올바르게 removeView를 사용하여 제거를 시작했지만 addView를 호출하려고하면 NullPointerException이 throw됩니다. TextView는 null이 일단 제거 되었기 때문입니다. 여기removeView를 호출 한 후 뷰에 addView 사용
는 내 코드가 어떻게 :
나는 그것이 정확한 시간에 호출되는 응용 프로그램 충돌을 말해 NullPointerException이 발생 할 수있는 매우 마지막 줄이 호출final TextView tagsText = (TextView)postDialogLayout.findViewById(R.id.newPostTagsText);
//remove since start with no tags
((LinearLayout)tagsText.getParent()).removeView(tagsText);
if(currentTags.equals("Tags: <font color='#33B5E5'></font>") && tagsText.isShown())
((LinearLayout)tagsText.getParent()).removeView(tagsText);
else if(!currentTags.equals("Tags: <font color='#33B5E5'></font>") && !tagsText.isShown())
//this line below throws the NullPointerException
((LinearLayout)tagsText.getParent()).addView(tagsText);
. 보기를 읽는 올바른 방법은 무엇입니까?
당신이 처음에 무엇을 원하는가? 그냥 숨기고'TextView'를 보여? 만약 그렇다면'setVisiblity()'로'TextView'의 가시성을 설정함으로써 훨씬 간단하게 할 수 있습니다. 가시성을 숨기려면'View.GONE'을 설정하고 다시 표시하려면'View.VISIBLE'을 설정하십시오. –
내가 그것을 피하고 있었던 이유는 그것이 뷰의 차원을 여전히 그곳에 남겨 놓았 기 때문에, 내가 그것을 완전히 제거하고 싶었던 곳 이었기 때문입니다. – AggieDev
'View.GONE'으로 설정하면'TextView'가없는 것처럼 보입니다. –