[java] Android-SPAN_EXCLUSIVE_EXCLUSIVE 스팬은 길이가 0 일 수 없습니다
다음과 같은 레이아웃이 있습니다 (거의 비어 있음).
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/set_layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:contentDescription="content desc"
android:orientation="vertical" >
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello, I am a TextView" />
</LinearLayout>
Activity 클래스에는 다음이 포함됩니다.
public class TestActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
}
}
모바일 장치에서 이것을 실행하면 다음 오류가 발생합니다.
SpannableStringBuilder
SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
나는 TextView를 사용하거나 사용하지 않고 이것을 시도했지만 오류가 여전히 남아 있습니다.이를 발생시키기 위해 기본 레이아웃에 근본적으로 잘못된 일을하고 있어야합니다.
누구든지 오류없이로드 할 수있는 방법에 대한 아이디어가 있습니까?
답변
LogCat에서 동일한 오류 항목이 발생했습니다. 제 경우에는 사용중인 타사 키보드로 인해 발생합니다. Android 키보드로 다시 변경하면 오류 항목이 더 이상 표시되지 않습니다.
답변
당신이지고있어 오류가 있기 때문에 하지 관련 EditText
, 다음은 것 없는 키보드 관련.
발생하는 오류는 코드의 결과가 아닙니다. 아마도 삼성의 TouchWiz가있는 삼성 장치에서 테스트하고있을 것입니다.
나는 같은 오류가 있었고 Nexus S (Samsung과 TouchWiz가없는 순수한 Android OS)에서 테스트했지만이 오류가 발생하지 않았습니다.
따라서 귀하의 경우 장치에서 테스트하는 동안 이러한 오류를 무시하십시오! 🙂
답변
코드를 보면 왜 오류가 발생하는지 잘 모르겠지만 EditText 필드와 동일한 오류가 발생했습니다.
변경 android:inputType="text"
(또는 다른 inputType 텍스트 변화의) android:inputType="textNoSuggestions"
(또는android:inputType="textEmailAddress|textNoSuggestions"
예를 들어) 나를 위해 그것을 해결했습니다.
코드에서 이것을 다음과 같이 설정할 수도 있습니다
mInputField.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
안드로이드는 기본적으로 EditText 필드에 제안 사항이 있다고 가정합니다. 그렇지 않으면 오류가 발생합니다. 이 설명에 100 % 확신하지는 않지만 위에서 언급 한 변경 사항으로 인해 문제가 해결되었습니다.
http://developer.android.com/reference/android/text/Spanned.html#SPAN_EXCLUSIVE_EXCLUSIVE
도움이 되었기를 바랍니다!
답변
안드로이드 폰에서
설정-> 응용 프로그램 관리자-> 모두-> 삼성 키보드로 이동 한 다음 “캐시 지우기”를 클릭하십시오
(이 응용 프로그램에서 수집 한 모든 데이터 삭제).
답변
기본 안드로이드 키보드를 사용해보십시오. 사라질 것입니다
답변
onCreateOptionsMenu 및 onCreate 메소드에 대한 MainAcitivity 값을 전달했는지 확인하십시오.
경우에 따라 개발자는 “return super.onCreateOptionsMenu (menu)”문을 삭제하고 “return true”로 변경했습니다.
답변
이것은 모든 장치에서 나를 위해 일했습니다.
<EditText
android:maxLines="1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textSize="15sp"
android:layout_centerVertical="true"
android:textColor="#000"
android:id="@+id/input_search"
android:background="@null"
android:inputType="text"
android:hint="Enter Address, City or Zip Code"
android:imeOptions="actionSearch"
/>
자바 코드에서 :
mSearchText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView textView, int actionId, KeyEvent keyEvent) {
if(actionId == EditorInfo.IME_ACTION_SEARCH
|| actionId == EditorInfo.IME_ACTION_DONE
|| keyEvent.getAction() == KeyEvent.ACTION_DOWN
|| keyEvent.getAction() == KeyEvent.KEYCODE_ENTER){
//execute our method for searching
}
return false;
}
});