2017-10-27 4 views
0

Dies ist, wie ich Daten in der Datenbank unter Verwendung von Raum Persistence Bibliothek am Einfügen:Room - Got Fehler beim Einsetzen Reihe

@Entity(tableName = "users") 
public class ExpParent implements Parent<ExpChild>, Serializable { 
@Ignore 
private List<ExpChild> mChildrenList; 

@Embedded 
@SerializedName("UserInfo") 
private ExpChild childrenList; 

private String UserName; 
private String CreationDateTime; 
@PrimaryKey(autoGenerate = false) 
@NonNull 
private String Id =""; 
private String Topic; 
//...... 

Datenzugriffsobjekt:

@Dao 
public interface UserDao { 

@Query("SELECT * FROM users") 
List<ExpParent> getAllUsers(); 

@Insert(onConflict = IGNORE) 
Long[] insertAllUsers(List<ExpParent> expParents); 
} 

aber wenn ich will zeigen, Anzahl des Objekt in meine db eingefügt habe ich diesen Fehler:

FATAL EXCEPTION: main 
              Process: com.example.sayres.a2_expandrecyandretrofit, PID: 2830 
              android.content.res.Resources$NotFoundException: String resource ID #0x8 
               at android.content.res.Resources.getText(Resources.java:312) 
               at android.widget.Toast.makeText(Toast.java:286) 
               at com.example.sayres.a2_expandrecyandretrofit.MainActivity$2$1$1.run(MainActivity.java:72) 
               at android.os.Handler.handleCallback(Handler.java:739) 
               at android.os.Handler.dispatchMessage(Handler.java:95) 
               at android.os.Looper.loop(Looper.java:148) 
               at android.app.ActivityThread.main(ActivityThread.java:5417) 
               at java.lang.reflect.Method.invoke(Native Method) 
               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

dies ist mein Weg, meine Aufgabe in db einzufügen:

  public void onResponse(Call<ServerResponse> call, Response<ServerResponse> response) { 
      ServerResponse body = response.body(); 
      final List<ExpParent> users = body.getUsers(); 
      new Thread(new Runnable() { 
       @Override 
       public void run() { 
        final Long[] longs = db.userDao().insertAllUsers(users); 

        MainActivity.this.runOnUiThread(new Runnable() { 
         @Override 
         public void run() { 
          Toast.makeText(MainActivity.this, longs.length, Toast.LENGTH_SHORT).show(); 
         } 
        }); 

       } 
      }).start(); 

ich durch Retrofit bin, holen Daten von meinem Dienst als eine Liste und dann in Arbeitsthread ich diese Daten in meine db.finally eingefügt haben möchte ich zeigen, wie Zahlenreihe in meine database.but eingefügt Ich habe Error!!! Was ist mein Fehler?

+0

'Ressourcen $ NotFoundException' –

Antwort

4

Sie missbrauchen Toast.makeText().
Der zweite Parameter kann entweder int Ressourcen-ID (Beispiel R.string.some_string) oder String sein.
Sie versuchen, eine Ganzzahl (longs.length) zu übergeben, die keine Ressourcen-ID ist. Um die ganze Zahl anzuzeigen, müssen Sie sie zuerst in eine Zeichenfolge konvertieren.

zu tun, dass Sie zum Beispiel kann es eine leere Zeichenfolge hinzu:

Toast.makeText(MainActivity.this, longs.length + "", Toast.LENGTH_SHORT).show(); 
Verwandte Themen