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

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

在一個(gè)活動(dòng)中為多個(gè)列表定義 onItemClick 行為的正確方法?

在一個(gè)活動(dòng)中為多個(gè)列表定義 onItemClick 行為的正確方法?

九州編程 2021-08-25 18:23:02
我已經(jīng)看到多個(gè)關(guān)于在一個(gè)活動(dòng)中顯示多個(gè)列表視圖的問(wèn)題,但我的問(wèn)題與兩者的 onClick 行為有關(guān)。我設(shè)置了兩個(gè)列表視圖,并動(dòng)態(tài)填充它們 - 這很好用。問(wèn)題在于為兩個(gè)列表設(shè)置 onClick 行為時(shí)。使用我當(dāng)前的代碼,第二個(gè)列表在單擊第一個(gè)列表中的相同項(xiàng)目時(shí)會(huì)打開(kāi)的活動(dòng)之上打開(kāi)所需的活動(dòng)。因此,當(dāng)用戶返回時(shí),它會(huì)進(jìn)入錯(cuò)誤的活動(dòng),因?yàn)榉祷囟褩J清e(cuò)誤的。我定義 onItemClick 行為的代碼在這里://make listview items respond to clicks and open relevant activity    lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {        public void onItemClick(AdapterView<?> parent, View view,                                int position, long id) {            // selected item            String standard = ((TextView) view).getText().toString();            // Launching new Activity on selecting single List Item            Intent i = new Intent(SubjectActivity.this, StandardInfoActivity.class);            // sending data to new activity            i.putExtra("standard", standard);            i.putExtra("subject", subjectId);            i.putExtra("subjectName", subject);            i.putExtra("level", level);            startActivity(i);            finish();        }    });    gradeView.setOnItemClickListener(new AdapterView.OnItemClickListener() {        public void onItemClick(AdapterView<?> parent2, View view,                                int position, long id2) {            // Launching new Activity on selecting single List Item            Intent j = new Intent(SubjectActivity.this, AddGradeActivity.class);            // sending data to new activity            j.putExtra("subjectId", subjectId);            j.putExtra("position", position);            j.putExtra("level", level);            j.putExtra("subject", subject);            startActivity(j);            finish();        }    });我的猜測(cè)是,因?yàn)槲覟閮烧叨x了相同的函數(shù),所以單擊第二個(gè)列表會(huì)調(diào)用它兩次,一次用于第一個(gè)列表,然后再次用于所需的列表。在這種情況下,定義兩個(gè)列表行為的正確方法是什么?編輯:用于設(shè)置適配器的代碼:ArrayList<String> mArrayList = myDb.getStandards(subjectId);    ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(            this, R.layout.subject_list_item, mArrayList);    lv.setAdapter(arrayAdapter);    ArrayList<String> gradeList = myDb.getGrades(subjectId);
查看完整描述

2 回答

?
嗶嗶one

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

在您的適配器中創(chuàng)建一個(gè)接口。然后您可以覆蓋您的活動(dòng)中的方法。界面:


   public interface ItemClickAdapterListener {

        void itemClick(View v, int position);

    }

物品點(diǎn)擊:


 viewHolder.llayout.setOnClickListener(new View.OnClickListener() {

                @Override

                public void onClick(View view) {

                    onClickListener.itemClick(view,position);

                }

            });

活動(dòng)代碼。像這樣創(chuàng)建適配器對(duì)象


YourAdpter adapter= new YourAdpter(new YourAdapter.ItemClickAdapterListener() {

  @Override

                public void itemClick(View v, int position) {


                }

}):


查看完整回答
反對(duì) 回復(fù) 2021-08-25
  • 2 回答
  • 0 關(guān)注
  • 198 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(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)