我和日历应用程序和基本工作思路背后的时候:我在特定日期添加事件的ListView和我想要做的是,当我点击当天ListView中的特定事件,OnClick方法将采取从数据库中事件的ID,并开始使用它新的活动。所以我需要将该ID传递给onClick方法。我发现类似的问题HERE,但不能完全理解我的情况。从数据库中获得物品的ID ListView项被点击
我有这个createBookings
方法,它进入循环的每一天添加事件并返回当天事件列表。
public List<Booking> createBookings(Date data) {
if(data!=null) {
.....
ArrayList<Booking> events = new ArrayList<>();
if (c.moveToFirst()) {
do {
Integer eventID;
String eventTitle, start_date, start_time, end_date, color;
eventID = c.getInt(0);
eventTitle = c.getString(1);start_time = c.getString(4); color = "•"+c.getString(7);
if(eventTitle.isEmpty())eventTitle="(no title)";
Booking event = new Booking(eventID,color+" "+eventTitle+" "+start_time, data);
events.add(event);
} while (c.moveToNext());
}
return events;
}
我会假设传递eventID
这样就可以了:
Booking event = new Booking(eventID,color+" "+eventTitle+" "+start_time, data);
,但我怎么得到它后,当onClickListener被称为列表视图?所有我设法做的是选择的项目的getText值..
final List<String> mutableBookings = new ArrayList<>();
final ListView bookingsListView = (ListView) findViewById(R.id.bookings_listview);
final ArrayAdapter adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, mutableBookings);
bookingsListView.setAdapter(adapter);
bookingsListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> bookingsListView, View view,
int position, long id) {
String item = ((TextView)view).getText().toString();
Toast.makeText(getApplicationContext()," "+item, Toast.LENGTH_SHORT).show();
}
});
我的预订类:
public class Booking {
private Integer id;
private String title;
private Date date;
public Booking(Integer id, String title, Date date) {
this.id = id;
this.title = title;
this.date = date;
}
//lets say I had this method here.. would it return the correct event id
//when called in onClickListener above?
public String getBookingId() {
return ""+id;
}
}
当我在'onItemClick()中放置'Booking booking = mutableBookings.get(position);'时,它给我一个错误: '必需:mypackagename .MainActivity.Booking 发现:java.lang.String' – Rimvydas
噢,我明白了,起初我还以为'mutableBookings'是Booking'类的''一个,但ArrayList'字符串的一个'ArrayList',所以这错误 –
在那里你将数据添加到'mutableBookings'?并且何时调用'createBookings()'方法? –