データベース(Product)に保存した内容(食品名、量)をArrayAdapterを用いて表示させているのですが、
表示される順番が登録順になっているので、
これを昇順(食品名、量の二つとも)に表示させようとしています。
公式サイトよりArrayAdapter.sortを用いて試しているのですが、
return int.compare(i1.getfoodName(), i2.getfoodName()); // .に赤線が出ます
という状況です。
ご教授お願い致します。
public class FoodActivity extends AppCompatActivity { private ArrayList<Product> products; public void onResume(){ super.onResume(); //データベースを読み込む products = new ArrayList<Product>(); SQLiteDatabase db = helper.getReadableDatabase(); String[] columns = {"id", "foodName", "foodgram"}; Cursor cursor = db.query("Products", columns, null, null, null, null, null); while(cursor.moveToNext()) { int id = cursor.getInt(0) ; String foodName = cursor.getString(1); double foodgram = cursor.getDouble(2); products.add( new Product(id, foodName, foodgram) ); } String[] items = new String[products.size()]; for(int i = 0; i < products.size(); i++) { Product product = products.get(i); items[i] = product.getfoodName() + ":" + product.getfoodgram(); } ArrayAdapter<String> adapter = new ArrayAdapter<String> (this, android.R.layout.simple_list_item_single_choice, items); listView.setAdapter(adapter); listView.setItemChecked(0, true); //getfoodName(),getfoodgram()をソートさせたい //getfoodName()はString型、getfoodgram()はdouble型 adapter.sort(new Comparator<Product>() { @Override public int compare(Product i1, Product i2) { return int.compare(i1.getfoodName(), i2.getfoodName()); } public int compare(Product i1, Product i2) { return int.compare(i1.getfoodgram(), i2.getfoodgram()); } }); db.close(); } }
回答2件
あなたの回答
tips
プレビュー