2013-01-24 4 views
1

TextView에 트위터 핸들의 @ 기호로 시작하는 문자열을 표시해야합니다. 내 strings.xml의 문자열을 넣을 때, 문자열의 시작 부분에 @를 좋아하고 오류 제공하지 않습니다TextView 시작 부분에 @ 표시

error: Error: No resource type specified (at 'twitter_handle' with value '@twitter_handle'). 

그 안에 TextView이있는 layout.xml이 문자열을 사용 오류가 없습니다

The following classes could not be found: 
- TextView (Change to android.widget.TextView, Fix Build Path, Edit XML) 

@ 기호는 텍스트의 시작 부분이 아니라 다른 곳 문자열의 경우 : 자원 오류를 제공합니다.

&#64 또는 \u0040으로 @ 기호를 이스케이프하면 오류가 strings.xml에서 사라지지만 여전히 layout.xml에서 오류가 발생합니다.

layout.xml의 TextView에서 @ 기호로 시작하는 문자열을 사용할 수 있습니까?

strings.xml의는 :

... 
<string name="twitter_handle">@twitter_handle</string> 
... 

layout.xml :

... 
<TextView 
    ... 
    android:text="@string/twitter_handle" 
    ... /> 
... 

의심의 여지가 문제가 선두 @ 리소스에 대한 참조를 의미한다는 사실과 관련이있다,하지만 안 이스케이프 처리 된 @ 기호를 고려하여 올바르게 작동합니까?

업데이트 :이 문제점은 ADT Eclipse 플러그인의 버그입니다. 최근에 릴리스 된 최신 버전을 설치하면 문제가 해결되고 strings.xml에서 @를 이스케이프하면 더 이상 오류가 발생하지 않습니다.

+0

는 아마도 관련 부분을 게시

... <TextView ... android:text="@string/twitter_handle" ... /> ... 

및 표시 텍스트 뷰에서 @twitter_handle로 실제'strings.xml'과'layout.xml'에 대해서요? – Eric

답변

2
이 같은 선도적 인 슬래시로 이스케이프

: <string name="test">\@twitter</string>

편집 : 나는 읽을 수 있어야합니다. 당신은 프로그래밍 방식에서 문자열을 공격자의 TextViewString를 할당하고 TextView

String twitter = getString(R.id.twitter); 
textView.setText(twitter); 

편집 2로 설정할 수 있습니다 : 대신에 @ 기호의이 시도 : &#64;합니다. 이것은 서명을위한 html 코드입니다.

+0

이것은 작동하지 않습니다.그것은 내가 시도한 다른 이스케이프 코드와 본질적으로 같습니다. strings.xml에서 오류를 수정하지만 layout.xml에서는 오류를 수정하지 않습니다. –

+0

layout.xml에서 프로그래밍 방식으로 만 수행 할 수있는 방법은 없을까요? –

+0

작은 트릭을 시도하고 선행 공간'\ s'을 추가 한 다음'\ @'를 추가하십시오. 나는 그것이 작동하는지 모르지만 그것은 적어도 시도입니다. – Leandros

0

시도해 볼 수 있습니다. string.xml에 문자열을 만들고 레이아웃 코드에서 사용하십시오.

<string name="example"><Data>@twitter</Data></string> 

@twitter이 문자열

0

이 코드는 나를 위해 잘 작동의 내용, 그냥 테스트. 단지 strings.xml의에 백 슬래시를 참고

strings.xml의 :

... 
<string name="twitter_handle">\@twitter_handle</string> 
... 

layout.xml :

+0

나는 이것을 정확하게 저장하고, 저장하고, 닫은/다시 열고, 정리 한 프로젝트를 만들었으며, Eclipse를 닫았다가 다시 열었다. 그러나 그것은 효과가 없었습니다. 방금 Eclipse에서 업데이트를 확인하고 ADT의 새 버전을 다운로드했습니다. 지금은 효과가있는 것 같습니다! 최근 몇 주 동안 마지막으로 확인한 결과로 최근 업데이트 된 것 같습니다. 다행스럽게도 문제는 해결되었습니다. –