2016-05-13 18 views
0

ListViewに自分のデータベースを表示するためのLB_Adapter.javaというクラスがあります。すべての私のプログラムの作業罰金の機能が、私はまだ警告エラー私はエラーが私のArrayListから来て理解グーグルからJavaクラスはチェックされていない操作または安全でない操作を使用します

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

を言う私はコンパイルするたびに取得するが、私はdoesnのArrayListを()を実装してみました仕事はありません。エラーを取り除く方法はありますか、それは何にも影響しないので重要ですか?

関連するコード:ジェネリック医薬品は、あなただけArrayAdapterArrayListあなたが使用している両方のパラメータを入力しなければならないのJava 5で導入されて以来

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

'-Xlint'で再コンパイルして詳細を調べましたか?なぜあなたは生の型を全く使用していますか? –

+0

これを行うには、javac project -Xlintを端末に入力するだけです。また、生の型についてわからない、私はこのコードを取得するチュートリアルを使用しました。 – Milap

+0

私はコンパイルについて混乱している理由は、これはAndroidスタジオのプログラムなので、それは単純なJavaプログラムではなく、gradleとstuffを含んでいるだけです。 – Milap

答えて

2

生の型を使用することは推奨されています:

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

私は私のクラスの詳細を投稿しました。 を置くと、私のパブリックなObject getItem(int position)メソッド(editを参照)にエラーが発生します。私はそれをに変更し、apkを構築しました。それ以上のエラーはありません。このエラーを解決するには、これが推奨される方法だと思いますか? – Milap

+1

@Milap no - ['getItem'](http://developer.android.com/reference/android/widget/ArrayAdapter.html#getItem(int))はあなたのユースケースに' LB'を入れてください。 – Mureinik

+0

それはエラーもなくコンパイルされます。ご協力いただきありがとうございます! – Milap

関連する問題