Android 列表视图循环

Android list view looping

我已经自定义了事件列表视图及其日期。如果用户选择列表中的特定项目,那么我的程序将询问用户是否想要提醒该事件。我在循环事件时遇到问题。例如,对于位置 1,如果我将提醒设置为 2:15pm,对于位置 2,我将提醒设置为 2:30。第二个列表的通知将忽略第一个列表。我希望这两个通知在各自的时间显示。

有人可以找出并帮助我如何循环列表,以便我能够为列表中的任何项目设置提醒。

请检查 OnClickResponse() 方法,这是我创建警报的地方。

'public class Product extends AppCompatActivity implements View.OnClickListener {
private List<list> myList = new ArrayList<list>();
private PendingIntent pendingIntent;

私有无效fill_ListView() {<br> ArrayAdapter<列表> listArrayAdapter = new myListAdapter(); <br> ListView 列表 = (ListView) findViewById(R.id.product_View); <br> list.setAdapter(listArrayAdapter); } private void clickResponse() {<br> ListView l = (ListView) findViewById(R.id.product_View); <br> 如果(l!=空){<br> l.setOnItemClickListener(新AdapterView.OnItemClickListener() { @Override<br> public void onItemClick(AdapterView<?> parent, final View viewClicked, final int position, long id) { <br> AlertDialog.Builder 警报 = 新 AlertDialog.Builder( Product.this); <br> alert.setTitle("Reminder!!"); <br> alert.setMessage("是否要提醒该产品的有效期?");<br> alert.setPositiveButton("YES", 新 DialogInterface.OnClickListener() { <br> @Override<br> public void onClick(DialogInterface dialog, int which) { Calendar 日历 = Calendar.getInstance(); // 检查第一项是否被点击,然后会为某个日期设置提醒<br> 如果(位置==0){ calendar.set(Calendar.MONTH, 6); <br> calendar.set(Calendar.YEAR, 2016); calendar.set(Calendar.DAY_OF_MONTH, 16); calendar.set(Calendar.HOUR_OF_DAY, 04); calendar.set(Calendar.MINUTE, 38); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.AM_PM,Calendar.AM); Intent myIntent = new Intent(Product.this, MyReceiver.class); pendingIntent = PendingIntent.getBroadcast(Product.this, 0,myIntent,0); AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE); alarmManager.set(AlarmManager.RTC, calendar.getTimeInMillis(), pendingIntent); } 如果(位置==1){<br> calendar.set(Calendar.MONTH, 6); calendar.set(Calendar.YEAR, 2016); calendar.set(Calendar.DAY_OF_MONTH, 16); calendar.set(Calendar.HOUR_OF_DAY, 04); calendar.set(Calendar.MINUTE, 39); calendar.set(Calendar.SECOND, 40); calendar.set(Calendar.AM_PM,Calendar.AM); Intent myIntent = new Intent(Product.this, MyReceiver.class); pendingIntent = PendingIntent.getBroadcast(Product.this, 0,myIntent,0); AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE); alarmManager.set(AlarmManager.RTC, calendar.getTimeInMillis(), pendingIntent); } dialog.dismiss(); } <br> }); <br> alert.setNegativeButton("NO", 新 DialogInterface.OnClickListener() { @Override<br> public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); <br> }<br> }); <br> alert.show(); <br> }<br> }); <br> }<br> }<br> <br> private class myListAdapter extends ArrayAdapter<list> {<br> public myListAdapter() {<br> // objects 里面有什么,它们看起来会怎样 super(Product.this, R.layout.custom_layout, myList); <br> } <br> @Override<br> public View getView(int position, View convertView, ViewGroup parent) {<br> <br> 查看itemView = convertView; <br> 如果(itemView == null{<br> itemView = getLayoutInflater().inflate(R.layout.custom_layout, parent, false); } 列表 current_list = myList.get(位置); ImageView imageView = (ImageView) itemView.findViewById(R.id.id_image); imageView.setImageResource(current_list.getIconId()); <br> // 获取事件的标题<br> TextView titleTxt = (TextView) itemView.findViewById(R.id.id_event); titleTxt.setText(current_list.getName()); // 获取描述 //<br> TextView desp = (TextView) itemView.findViewById(R.id.id_desp); // desp.setText(current_list.getDetails()); <br> EditText 文本 = (EditText)itemView.findViewById(R.id.id_desp); text.setText(current_list.getDetails()); TextView 日期 = (TextView) itemView.findViewById(R.id.id_date); date.setText(current_list.getDate()); <br> return 项目视图; <br> } <br> } 在此处输入代码'

问题出在这一行:

pendingIntent = PendingIntent.getBroadcast(Product.this, 0,myIntent,0);

第二个参数代表requestCode,不同的告警必须是唯一的。您每次都将其设置为 0,因为这会覆盖之前的警报。