Ressource non trouvée TextView

Je prends mes premières étapes dans Android et je commence par une application très simple qui permet de suivre les progrès à travers un motif de tricot et montre les instructions pour la ligne correspondante.

Je souhaite mettre à jour plusieurs objets TextView par programme. Cependant, l'utilisation de getViewById () ne semble pas les identifier correctement et l'application se bloque.

  • Espresso NoMatchingViewException lors de l'utilisation withId matcher
  • Comment puis-je forcer un site à l'échelle à réparer pour mobile (Iphone, Android ...)
  • Un problème mettant à jour Android SDK Tools rev 19 à rev 20 à l'aide de Windows 7- 64 bits
  • Comment publier Android Library sur Android Arsenal?
  • Accessibilité Contenu manquant Description de l'attribut sur l'image comment supprimer cet avertissement?
  • La miniature de chargement Glide ne fonctionne pas
  • Après avoir cherché sur Google, il semble qu'il y ait parfois des problèmes avec l'espace de noms XML dans le XML de mise en page, mais le mien semble OK. Est-ce que c'est quelque chose à voir avec la portée, peut-être?

    Instructions.java (c'est la seule activité)

    package uk.co.oketchup.blanketsquare; import android.app.Activity; import android.os.Bundle; import android.content.SharedPreferences; import android.widget.Button; import android.widget.TextView; import android.view.View.OnClickListener; import android.view.View; public class instructions extends Activity { private int mRow; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /* retrieve row from shared preferences, or start from zero if nothing there */ SharedPreferences settings = getPreferences(MODE_PRIVATE); mRow = settings.getInt("row",0); setContentView(R.layout.main); /* associate onClick listeners with the two buttons */ final Button btnIncrement = (Button) findViewById(R.id.increment); btnIncrement.setOnClickListener(new OnClickListener() { public void onClick(View v) { // Increment row ++mRow; calcAndUpdate(); } }); final Button btnDecrement = (Button) findViewById(R.id.decrement); btnDecrement.setOnClickListener(new OnClickListener() { public void onClick(View v) { // Decrement row --mRow; calcAndUpdate(); } }); } private void calcAndUpdate() { String Instructions; int knit1; int knit2; int remaining; if (mRow%2 == 1 ) { /* Odd row */ knit1 = 40 - mRow; Instructions = "K" + knit1; remaining = knit1; } else { /* Even row */ knit1 = 18 - mRow/2; knit2 = knit1 + 1; Instructions = "Sl 1, k" + knit1 + ", [sl 1 kwise] 2 times, k1, p2sso, k" + knit2; remaining = knit1 + knit2 + 2; } /* Update the display */ TextView tRow = (TextView) findViewById(R.id.row); TextView tInstr = (TextView) findViewById(R.id.instr); TextView tStRem = (TextView) findViewById(R.id.stitchremain); /* Set the text */ tRow.setText(mRow); tInstr.setText(Instructions); tStRem.setText(remaining); } } 

    / Res / layout / main.xml

     <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:id="@+id/row" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Row" /> <TextView android:id="@+id/instr" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Instructions" android:layout_below="@id/row" /> <Button android:id="@+id/increment" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="+" android:layout_alignParentBottom="true" /> <Button android:id="@+id/decrement" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="-" android:layout_toRightOf="@id/increment" android:layout_alignParentBottom="true" /> <TextView android:id="@+id/stitchremain" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="stitches remaining" android:layout_above="@id/increment" /> </RelativeLayout> 

    Les objets TextView semblent avoir été enregistrés comme ils apparaissent dans R.java

     public static final class id { public static final int decrement=0x7f050003; public static final int increment=0x7f050002; public static final int instr=0x7f050001; public static final int row=0x7f050000; public static final int stitchremain=0x7f050004; } 

    Voici le message d'erreur affiché dans ddms.

     Uncaught handler: thread main exiting due to uncaught exception android.content.res.Resources$NotFoundException: String resource ID #0x1 at android.content.res.Resources.getText(Resources.java:200) at android.widget.TextView.setText(TextView.java:2813) at uk.co.oketchup.blanketsquare.instructions.calcAndUpdate(instructions.java:75) at uk.co.oketchup.blanketsquare.instructions.access$100(instructions.java:11) at uk.co.oketchup.blanketsquare.instructions$1.onClick(instructions.java:33) [etc] 

    Merci beaucoup pour votre aide.

  • Cycle de vie de l'activité Android après avoir appuyé sur le bouton Retour
  • HorizontalScrollView dans ScrollView Touch Handling
  • Android - AnimatorSet, Object Animator - La chaîne d'animation Bounce s'améliore?
  • IllegalArgumentException in ProgressDialog.dismiss
  • Rotation vidéo prise en mode portrait
  • Android: Appel des méthodes sur le thread UI à partir de la méthode AsyncTask doInBackground
  • 2 Solutions collect form web for “Ressource non trouvée TextView”

    MRow est un nombre entier. Lorsque vous appelez setText (mRow) à la ligne 75, il pense que vous essayez de définir le texte avec une ressource String avec ID = la valeur de mRow.

    Au lieu de cela, faites:

     tRow.setText(Integer.toString(mRow)); 

    Vous devez toujours convertir d'autres valeurs en chaîne avant de la configurer à la visualisation de texte, comme

      txtX.setText(Integer.toString(intVal)); 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.