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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在一個活動中為多個列表定義 onItemClick 行為的正確方法?

在一個活動中為多個列表定義 onItemClick 行為的正確方法?

九州編程 2021-08-25 18:23:02
我已經(jīng)看到多個關(guān)于在一個活動中顯示多個列表視圖的問題,但我的問題與兩者的 onClick 行為有關(guān)。我設(shè)置了兩個列表視圖,并動態(tài)填充它們 - 這很好用。問題在于為兩個列表設(shè)置 onClick 行為時。使用我當前的代碼,第二個列表在單擊第一個列表中的相同項目時會打開的活動之上打開所需的活動。因此,當用戶返回時,它會進入錯誤的活動,因為返回堆棧是錯誤的。我定義 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();        }    });我的猜測是,因為我為兩者定義了相同的函數(shù),所以單擊第二個列表會調(diào)用它兩次,一次用于第一個列表,然后再次用于所需的列表。在這種情況下,定義兩個列表行為的正確方法是什么?編輯:用于設(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貢獻1854條經(jīng)驗 獲得超8個贊

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


   public interface ItemClickAdapterListener {

        void itemClick(View v, int position);

    }

物品點擊:


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

                @Override

                public void onClick(View view) {

                    onClickListener.itemClick(view,position);

                }

            });

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


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

  @Override

                public void itemClick(View v, int position) {


                }

}):


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

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