最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

獲取同一個(gè)對象到Android ListView

獲取同一個(gè)對象到Android ListView

LEATH 2023-10-19 14:54:03
我嘗試在 Android 中開發(fā)我的第一個(gè)應(yīng)用程序,但遇到了一個(gè)錯(cuò)誤。我需要從 SQLite 數(shù)據(jù)庫獲取對象并在 ListView 中顯示它們。這是我的適配器的代碼:public class ReminderListAdapter extends ArrayAdapter<Reminder> {private Context mContext;private int mResource;public ReminderListAdapter(@NonNull Context context, int resource, @NonNull ArrayList<Reminder> objects) {    super(context, resource, objects);    mContext = context;    mResource = resource;}@NonNull@Overridepublic View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {    int id = getItem(position).getId();    String name = getItem(position).getName();    String hour = getItem(position).getHour();    String date = getItem(position).getDate();    LayoutInflater inflater = LayoutInflater.from(mContext);    convertView = inflater.inflate(mResource, parent, false);    TextView resId = convertView.findViewById(R.id.textId);    TextView resName = convertView.findViewById(R.id.textName);    TextView resHour = convertView.findViewById(R.id.textHour);    TextView resDate = convertView.findViewById(R.id.textDate);    resId.setText(String.valueOf(id));    resName.setText(name);    resHour.setText(hour);    resDate.setText(date);    return convertView;}這是我需要從數(shù)據(jù)庫發(fā)布對象的活動(dòng)代碼:public class EditActivity extends AppCompatActivity {DBHelper dbHelper;SQLiteDatabase database;private ListView listView;private TextView countRem;private String count;ArrayList<Reminder> ReminderList = new ArrayList<>();@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_edit);    dbHelper = new DBHelper(this);    database = dbHelper.getWritableDatabase();    listView =(ListView) findViewById(R.id.ListOfReminders);    countRem =(TextView) findViewById(R.id.textView);結(jié)果,我在列表視圖中得到相同的輸出。對象1:ID:0,名稱:1,小時(shí):2,日期:3。該數(shù)據(jù)與數(shù)據(jù)庫中的數(shù)據(jù)不匹配。而且,這個(gè)輸出適用于每個(gè)對象。有什么錯(cuò)誤嗎?如果這是一個(gè)愚蠢的錯(cuò)誤,我很抱歉,這是第一個(gè)應(yīng)用程序。
查看完整描述

1 回答

?
呼如林

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超3個(gè)贊

cursor.getColumnIndex(...)只返回行的列索引。要獲取該列中的值,您有以下幾種選擇:

  • 如果事先知道數(shù)據(jù)類型,則可以直接調(diào)用cursor. 例如,如果該列DBHelper.KEY_NAME包含String,我們可以直接使用查詢該列中的值cursor.getString(cursor.getColumnIndex(DBHelper.KEY_NAME))

  • 如果不這樣做,您可以嘗試調(diào)用cursor.getType(int columnIndex)以獲取基礎(chǔ)類型,然后根據(jù)返回值在游標(biāo)上調(diào)用適當(dāng)?shù)姆椒ā?/p>

簡而言之,代碼的問題在于您獲取的是列索引getColumnIndex) 而不是列getFloat、getIntgetString):

    ...

    int idIndex = cursor.getColumnIndex(DBHelper.KEY_ID);

    int nameIndex = cursor.getColumnIndex(DBHelper.KEY_NAME);

    int hourIndex = cursor.getColumnIndex(DBHelper.KEY_HOUR);

    int dateIndex = cursor.getColumnIndex(DBHelper.KEY_DATE);

    String name = cursor.getString(nameIndex);

    String hour = cursor.getString(hourIndex);

    String date = cursor.getString(dateIndex);

  ...


查看完整回答
反對 回復(fù) 2023-10-19
  • 1 回答
  • 0 關(guān)注
  • 154 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號