2013-03-29 20 views
71

öncesinde değil kesme işareti \ öncesinde değil (de '{dize}' gerçekleşir {kez})kesme işareti Bir robot başvuruda tanımlanan bir dize sahip

Ben şeylerin bir sayı Bunu düzeltmek için denedim:

<string name="search_occurs">\'{string}\' occurs {times}</string> 
<string name="search_occurs">&apos;{string}&apos; occurs {times}</string> 
<string name="search_occurs"><![CDATA['{string}' occurs {times}]]></string> 
<string name="search_occurs"><![CDATA[\'{string}\' occurs {times}]]></string> 

Ben hata kurtulmak mümkün değilim. Neyi kaçırıyorum?

+6

'\ '' Benim için çalışıyor. Sadece Eclipse'de denedim. – CommonsWare

+4

Kesme işareti önüne bir ters eğik çizgi ekledikten sonra, "Temizleme" için gerekli olduğu anlaşıldı ve hata hakkında şikayet etmemek için tüm projeyi Eclipse için yeniden oluşturuldu. – Stan

cevap

89

bu her iki çalışma http://developer.android.com/guide/topics/resources/string-resource.html#FormattingAndStyling göre olmalıdır: hemen önce \ koymak

<string name="search_occurs">\'{string}\' occurs {times}</string> 
<string name="search_occurs">"'{string}' occurs {times}"</string> 
+4

İkincisi çalıştı. Teşekkürler. –

+0

İlki benim için çalıştı, ikinci test edilmedi. Büyük çalışma – VVB

+2

her ikisi de, ve her iki durumda da oluşturmadan önce android stüdyo tırnak işaretleri ve ters eğik çizgi, aynı zamanda tek alıntı ve daha sonra hata görüntüleme dönüştürür \ u0027. –

3

Neden ile değiştirin dize ile ' vermeyin?

Ayrıca bu gibi yapıları biliyor?

<string name="profile_age_range_text_between">between %1$d and %2$d</string> 
<string name="unit_height_inches">%1$d\'%2$d ft</string> 
<string name="unit_distance_miles">%s mi</string> 
44

'senin dizede It YANLIŞ O \' DOĞRU :)

cevap olarak
+0

Bunu yapmanın daha temiz bir yolu var mı? Uygulamamı Fransızca'ya yerelleştiriyorum ve dize klasörümde çok fazla metin var. Bu yüzden tüm yazılardan geçmek ve ters eğik çizgi eklemek en iyi fikir değildir. –

+0

Hayır, tek yol bu. –

+0

@ The_Martian Aynı problemi yaşıyorum, önerilenin dışında bir yol buldunuz mu? – Nobody

0

https://stackoverflow.com/users/3339394/the-martian için 'By \' yerine genel bir çözüm var, metni bir word editörüne (Notepad ++ gibi) kopyalamanız ve daha sonra programdaki "replace" (değiştir) seçeneğini kullanarak tüm \ 'leriyle değiştirin. Bu Hata

değiştirin Kesme işareti ile \' Thats dize All In

0

(Ben bir cevap üzgün! Bunu yazmak zorunda yeterli itibar ettik nedeni) Çözümü senaryouma dayanarak aldım.

  1. kaşif
  2. Düzenleme string.xml dosyasından satır içinde string.xml dosyası
  3. Sağ tıklayın ve açık gösteri seçin ve kodu kaydedin.
  4. Android stüdyoyu yeniden açın ve çözümü yenileyin.

Şimdi kod çalışacaktır.

Not: Ben olamaz tarihinde kesme işareti kullanarak hata var. Bu yüzden 'a dönüşemiyorum. Şimdi senaryonum işe yarayacak.

-1

I kullanılmış bir Apostrophe'nin kaynaklanır

1

her (')

not before ( veya eklenti \ \) ile ( Kişisel kesme işareti )' değiştirin: copy sadece iç() metin

1

sen olduğundan emin olun doğru dosyayı düzenleme. this answer durumlarında, hatayı aldığınızda, Android Studio, orijinal dosyanıza benzeyen bir values.xml dosyasını açar.\ dosyasını orijinal strings.xml dosyasına (veya rahatsız edici karakterin bulunduğu yere) eklemeniz gerekir. Aksi halde sadece hatayı tekrarlamaya devam edecektir.

İlgili konular