第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

ArrayList 中每個(gè)對(duì)象的刪除按鈕

ArrayList 中每個(gè)對(duì)象的刪除按鈕

海綿寶寶撒 2023-10-19 21:22:22
我需要從 SQLite 數(shù)據(jù)庫(kù)獲取對(duì)象并在 ListView 中顯示它們。此外,每個(gè)對(duì)象必須有 2 個(gè)可見(jiàn)按鈕:編輯和刪除。這是適配器的代碼: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(final int position, @Nullable View convertView, @NonNull ViewGroup parent) {    final int id = getItem(position).getId();    final 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);    final TextView resId = convertView.findViewById(R.id.textId);    final TextView resName = convertView.findViewById(R.id.textName);    final TextView resHour = convertView.findViewById(R.id.textHour);    final TextView resDate = convertView.findViewById(R.id.textDate);    resId.setText(String.valueOf(id));    resName.setText(name);    resHour.setText(hour);    resDate.setText(date);    Button delbtn = (Button) convertView.findViewById(R.id.button4);    Button editbtn = (Button) convertView.findViewById(R.id.button5);    delbtn.setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View v) {        }    });   editbtn.setOnClickListener(new View.OnClickListener() {       @Override       public void onClick(View v) {       }   });    return convertView;}/*public boolean delete_Reminder(String name2){    return database.delete(TABLE_REMINDERS, KEY_NAME + "=" + name2, null) > 0;}*/}我想我需要在我的適配器中實(shí)現(xiàn)這兩個(gè)按鈕。在代碼中可以看到delbtn和editbtn的onClickListener。但我的問(wèn)題是我不知道如何調(diào)用方法delete_Reminder(它也在Adapter中),因?yàn)槲覠o(wú)法在這里創(chuàng)建DBHelper,并且無(wú)法連接到DB。抱歉,如果這是一個(gè)愚蠢的問(wèn)題,這是第一個(gè)應(yīng)用程序。
查看完整描述

2 回答

?
動(dòng)漫人物

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

用于interface回調(diào)。Activity與Adapter之間的橋接接口;一旦用戶在 Adapter 的視圖上執(zhí)行操作 - 給 Activity 回調(diào)。


界面


interface OnItemClickListener {

  void onItemClick(View view, int position, String name)

}

活動(dòng)


public class EditActivity extends AppCompatActivity implements

    OnItemClickListener {

 ...


 @Override

 protected void onCreate(Bundle savedInstanceState) {

 ...

 ReminderListAdapter adapter = new ReminderListAdapter(this, R.layout.reminder_view, ReminderList);

 adapter.setListener(this);

 listView.setAdapter(adapter);

 ...

 }



 @Override

   public void onItemClick(final View view, final int position, final String name) {

    //Your callback

    delete_Reminder(name);

  }

}

適配器


public class ReminderListAdapter extends ArrayAdapter<Reminder> {

private Context mContext;

private int mResource;


  private final OnItemClickListener listener;


  public ReminderListAdapter(@NonNull Context context, int resource, 

  @NonNull ArrayList<Reminder> objects) {

  super(context, resource, objects);

  mContext = context;

  mResource = resource;

  }



 public setListener(final OnItemClickListener listener) {

   this.listener = listener;

 }

 ...


 @NonNull

 @Override

 public View getView(final int position, @Nullable View convertView, @NonNull ViewGroup parent) {

  ...


  delbtn.setOnClickListener(new View.OnClickListener() {

    @Override

    public void onClick(View v) {

      listener.onItemClick(convertView, position, name);

    }

  });

  }


}


查看完整回答
反對(duì) 回復(fù) 2023-10-19
?
蠱毒傳說(shuō)

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

  1. 您在每次循環(huán)迭代時(shí)設(shè)置適配器,而它應(yīng)該在循環(huán)完成后僅設(shè)置一次。

  2. 我可以在您的代碼中看到幾個(gè)設(shè)計(jì)問(wèn)題(如果這是您的應(yīng)用程序,這是可以理解的。

  • ReminderList 以大寫字母開頭 - 按照慣例,變量和方法名稱以小寫字母開頭,常量名稱全部大寫,類名稱以大寫字母開頭

  • 我不確定您的應(yīng)用程序要去哪里,但是當(dāng)從數(shù)據(jù)庫(kù)加載數(shù)據(jù)時(shí),您可能需要考慮將它們加載到CursorAdapter而不是 ArrayAdapter

  • 另請(qǐng)查看數(shù)據(jù)綁定庫(kù)和 MVC 設(shè)計(jì)以獲得更清晰的代碼。


查看完整回答
反對(duì) 回復(fù) 2023-10-19
  • 2 回答
  • 0 關(guān)注
  • 165 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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