java获取IndexOutOfBundException Android
我正在从列表中的数据库中检索事件。我正在创造动态事件。我已将id设置为事件,并在列表中检索
我想获取将被点击的事件的数据。我试图检索值,但当我点击任何事件时,索引异常消失
以下是我获取数据的尝试:
public int tag;
private EventTableHelper db;
private EventData mEvent;
if(editMode)//true
{
id = i.getIntExtra("tag", 0);
List<EventData> eventList = db.getAllEvents(id);
mEvent = eventList.get(id);
title.setText(mEvent.getTitle());
Toast.makeText(getApplicationContext(), String.valueOf(id),Toast.LENGTH_LONG).show();
db.updateEvent(eventData);
Toast.makeText(getApplicationContext(),"Edit mode",Toast.LENGTH_LONG).show();
}
正在获取事件列表中的异常。获取(id)
编辑:
创建事件函数:
for (EventData eventData : events) {
String datefrom = eventData.getFromDate();
if(datefrom != null) {
String[] times = datefrom.substring(11, 16).split(":");
minutesFrom = Integer.parseInt(times[0]) * 60 + Integer.parseInt(times[1]);
}
String dateTo = eventData.getToDate();
String title = eventData.getTitle();
String location = eventData.getLocation();
if(dateTo != null) {
String[] times1 = dateTo.substring(11, 16).split(":");
minutesTo = Integer.parseInt(times1[0]) * 60 + Integer.parseInt(times1[1]);
}
tag ++;
createEvent(inflater, dayplanView, minutesFrom, minutesTo,title,location);
}
CreateEvent:
private void createEvent(LayoutInflater inflater, ViewGroup dayplanView, int fromMinutes, int toMinutes, String title,String location) {
final View eventView = inflater.inflate(R.layout.event_view, dayplanView, false);
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) eventView.getLayoutParams();
RelativeLayout container = (RelativeLayout) eventView.findViewById(R.id.container);
TextView tvTitle = (TextView) eventView.findViewById(R.id.textViewTitle);
TextView showLocation = (TextView)eventView.findViewById(R.id.Location);
TextView at = (TextView)eventView.findViewById(R.id.At);
if (tvTitle.getParent() != null)
((ViewGroup) tvTitle.getParent()).removeView(tvTitle);
tvTitle.setText(title);
if (showLocation.getParent() != null)
((ViewGroup) showLocation.getParent()).removeView(showLocation);
if (at.getParent() != null)
((ViewGroup) at.getParent()).removeView(at);
if(location.equals(""))
{
showLocation.setVisibility(View.INVISIBLE);
at.setVisibility(View.INVISIBLE);
}
else
{
showLocation.setVisibility(View.VISIBLE);
at.setVisibility(View.VISIBLE);
showLocation.setText(location);
}
int distance = (toMinutes - fromMinutes);
layoutParams.topMargin = dpToPixels(fromMinutes + 9);
layoutParams.height = dpToPixels(distance);
eventView.setLayoutParams(layoutParams);
dayplanView.addView(eventView);
container.addView(tvTitle);
container.addView(showLocation);
container.addView(at);
eventView.setTag(tag);
eventView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
i = new Intent(getActivity(),AddEventActivity.class);
editMode = true;
i.putExtra("EditMode",editMode);
v.getTag(tag);
i.putExtra("tag",tag);
startActivity(i);
}
});
}
我正在设置标签并将其从片段传递到活动
如何解决这个问题
# 1 楼答案
试着改变
进入
及
进入