亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

我的 ListView 的意圖沒有改變我的活動

我的 ListView 的意圖沒有改變我的活動

慕村225694 2021-10-28 09:47:54
我正在創建一個鬧鐘應用程序,它在 MainActivity 上有一個鬧鐘列表,很像默認的 Android 時鐘應用程序。為此,我實現了一個顯示良好的 ListView。但是,我一直在嘗試在 ListView 上設置一個更新按鈕,以允許我通過我的 CreateAlarmActivity 更新警報的詳細信息,并以此為指導:ListView 中的 Intent。我已經看過幾次了,但是當我在測試過程中按下這個按鈕時,沒有任何反應?;顒又皇潜3衷瓨印N腋铱隙ㄟ@可能是一件簡單而愚蠢的事情(幾乎總是如此),但我似乎找不到我的錯誤。也許我需要 AlarmAdapter 的 onClick 方法以及 MainActivity 的 onItemClick 中的某些內容?代碼:主活動.javapublic class MainActivity extends AppCompatActivity {    ListView alarmListView;    ArrayList<Alarm> alarmList = new ArrayList<Alarm>();    AlarmAdapter alarmAdapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        alarmListView = findViewById(R.id.alarmListView);        // Credit to Mitch Woodbright for helping with this section, and other try/catch blocks.        try        {            ArrayList<Alarm> alarm = (ArrayList<Alarm>) getIntent().getSerializableExtra("alarmList");            for(Alarm elements : alarm){                alarmList.add(elements);            }        }        catch (NullPointerException e){            //error handling code        }        alarmAdapter = new AlarmAdapter(MainActivity.this, alarmList);        alarmListView.setAdapter(alarmAdapter);        alarmAdapter.notifyDataSetChanged();        alarmListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {                Intent updateAlarmIntent = new Intent(MainActivity.this, CreateAlarmActivity.class);                updateAlarmIntent.putExtra("alarmList", alarmList);                updateAlarmIntent.putExtra("position", position);                startActivity(updateAlarmIntent);            }        });    }
查看完整描述

2 回答

?
牧羊人nacy

TA貢獻1862條經驗 獲得超7個贊

請alarmListView.setOnItemClickListener按照@Parul 的說法刪除


并在適配器中updateButton整體替換view。


 view.setOnClickListener(new View.OnClickListener() {

        @Override

        public void onClick(View view) {

            Intent updateAlarmIntent = new Intent(MainActivity.this, CreateAlarmActivity.class);

            updateAlarmIntent.putExtra("alarmList", alarmList);

            updateAlarmIntent.putExtra("position", position);

            startActivity(updateAlarmIntent);

        }

    });


查看完整回答
反對 回復 2021-10-28
?
阿晨1998

TA貢獻2037條經驗 獲得超6個贊

如果您只想在更新按鈕上執行操作,請執行此操作。


在適配器的 getView() 方法中:


updateButton.setOnClickListener(new View.OnClickListener() {

        @Override

        public void onClick(View view) {

            // Logic goes here.

           onUpdateClick(position, alarmList); // public method in adapter

        }

    });

然后在適配器中創建公共方法:


public void onUpdateClick(int position, ArrayList<alarm> alarmList){


}

現在在初始化適配器時在活動中覆蓋此方法:


alarmAdapter = new AlarmAdapter(MainActivity.this, alarmList){

    @Override

    public void onUpdateClick(int position, ArrayList<alarm> alarmList) {

                super.onUpdateClick(position, alarmList);

                Intent updateAlarmIntent = new Intent(MainActivity.this, 

                            CreateAlarmActivity.class);

                updateAlarmIntent.putExtra("alarmList", alarmList);

                updateAlarmIntent.putExtra("position", position);

                startActivity(updateAlarmIntent);

      }

};


查看完整回答
反對 回復 2021-10-28
  • 2 回答
  • 0 關注
  • 136 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號