2016-05-20 5 views
1

Ich habe eine Tätigkeit, die implementiert die folgenden Funktionen:Übergabe eines EditText Objekt und EditText.setText() throw Exception

public class SettingsActivity extends Activity { 
     public void setText(EditText txtBox,String strText){ 
      txtBox.setText(strText); 
     } 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.settings); 
      EditText txtEdit = (EditText)findViewById(R.id.txtEdit); 
      setText(txtEdit,"String"); 
      ... 
     } 

So ruft Ich versuche, ein EditText Objekt an die setText Funktion zu übergeben und dann die txtBox.setText() Funktion. Aber das wirft die folgende Ausnahme:

android.content.res.Resources$NotFoundException: String resource ID #0x0 

jedoch beim Aufruf der Funktion txtEdit.setText() innerhalb onCreate() arbeitet völlig in Ordnung.

Edit: Die Funktion setText war eine Vereinfachung, ich übergab tatsächlich ein Objekt a der benutzerdefinierten Klasse a dann txtBox.setText(object.value), die (aus Versehen) eigentlich eine Ganzzahl, kein String war. Das Übergeben einer Zeichenfolge hat den Fehler behoben. Ich entschuldige mich für die Unannehmlichkeiten.

+0

Projekt reinigen/neu erstellen? Ich meine, alles scheint gut in Ihrem Code .. –

+0

Ja! .. Ich testete Ihren Code in meiner Seite ... alles ist in Ordnung –

+0

In meiner vorherigen Antwort ... Ich dachte, dass Sie den gleichen Editedtext in setText() verwenden Methode –

Antwort

-1

Kann sein, Ihre ID nicht in der Layout-Datei vorhanden

+3

Dies würde Nullzeigerausnahme bringen, da findViewById in diesem Fall null zurückgibt. –

0

Ich habe erkannt, dass in der Tat ich nicht einen String-Parameter übergeben hat. Wie @Lubos hat Horacek beschrieben, dass die Ausnahme ausgelöst wird, wenn Sie einen int an setText übergeben. Das Konvertieren des Parameters hat den Fehler behoben.

+0

Aber in Ihrem Code, den Sie freigegeben haben, übergeben Sie "String" als Parameter und es ist String-Typ. –

Verwandte Themen