2016-05-13 11 views
0

Ich habe eine Klasse namens LB_Adapter.java gemacht, um meine Datenbank in einer ListView zu zeigen. Alle Funktionalitäten meines Programms arbeiten gut, aber ich habe immer noch eine Warnung Fehler, die ich jedes Mal, dassJava-Klasse verwendet ungeprüfte oder unsichere Operationen

Note: Project/LB_Adapter.java uses unchecked or unsafe operations. 
Note: Recompile with -Xlint:unchecked for details. 

sagt kompilieren Von googeln Ich verstehe die Fehler von meinem Arraylist kommt, aber ich habe versucht, Arraylist Umsetzung(), die doesn arbeite nicht. Gibt es eine Möglichkeit, den Fehler loszuwerden, oder spielt es überhaupt eine Rolle, da nichts davon betroffen ist?

Relevante Code:

public class LB_Adapter extends ArrayAdapter<Object> { 
List<Object> list = new ArrayList<>(); 

public LB_Adapter(Context context, int resource){ 
    super(context, resource); 
} 

public void add(LB object){ 
    list.add(object); 
    super.add(object); 
} 

@Override 
public int getCount(){ 
    return list.size(); 
} 

@Override 
public Object getItem(int position){ 
    return list.get(position); 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    View row = convertView; 
    LBHolder lbholder; 

    if(row==null){ 
     LayoutInflater layoutinflater = (LayoutInflater) this.getContext().getSystemService(getContext().LAYOUT_INFLATER_SERVICE); 
     row = layoutinflater.inflate(R.layout.display_leaderboard_row, parent, false); 
     lbholder = new LBHolder(); 
     lbholder.lb_rank = (TextView) row.findViewById(R.id.lb_rank); 
     lbholder.lb_score = (TextView) row.findViewById(R.id.lb_score); 
     lbholder.lb_time = (TextView) row.findViewById(R.id.lb_time); 
     row.setTag(lbholder); 
    } 
    else { 
     lbholder = (LBHolder) row.getTag(); 
    } 
    LB leaderboard = (LB) getItem(position); 
    lbholder.lb_rank.setText(leaderboard.getRank().toString()); 
    lbholder.lb_score.setText(Integer.toString(leaderboard.getScore())); 
    lbholder.lb_time.setText(leaderboard.getTime().toString()); 

    return row; 
} 

static class LBHolder{ 
    TextView lb_rank, lb_score, lb_time; 
} 
} 
+4

Haben Sie versucht, mit "-Xlint" neu zu kompilieren, um weitere Details zu erhalten? Warum verwenden Sie überhaupt rohe Typen? –

+0

zu tun, dass ich gerade javac Projekt -Xlint in das Terminal eingeben? Außerdem bin ich mir bei den Rohtypen nicht sicher, ich habe ein Tutorial benutzt, um diesen Code zu bekommen. – Milap

+0

Der Grund, warum ich über das Kompilieren verwirrt bin, ist, dass es ein Programm mit Android Studios ist, also ist es nicht nur ein einfaches Java-Programm, es beinhaltet Gradle und Zeug – Milap

Antwort

2

rohe Typen Verwendung hat abgeraten seit Generika in Java 5. eingeführt wurden Sie sollten nur beide die ArrayAdapter für Parameter eingeben und die ArrayList Sie verwenden:

public class LB_Adapter extends ArrayAdapter<LB> { 
    // Here --------------------------------^ 

    // And here: 
    List<LB> list = new ArrayList<>(); 

    public LB_Adapter(Context context, int resource){ 
     super(context, resource); 
    } 

    public void add(LB object){ 
     list.add(object); 
     super.add(object); 
    } 
} 
+0

Ich habe mehr von meiner Klasse gepostet. Wenn ich setze, kommt ein Fehler auf meinem öffentlichen Objekt getItem (int Position) Methode (siehe bearbeiten). Ich änderte das zu und baute die apk und es gibt keinen mehr Fehler. Denken Sie, dass dies ein empfohlener Weg ist, um den Fehler zu beheben? – Milap

+1

@Milap no - ['getItem'] (http://developer.android.com/reference/android/widget/ArrayAdapter.html#getItem (int)) sollte ein' LB' in Ihrem Anwendungsfall sein. – Mureinik

+0

Ok. Es kompiliert auch ohne Fehler auf diese Weise. Danke für Ihre Hilfe! – Milap

Verwandte Themen