1@Override
2 public boolean onKeyDown(int keyCode, KeyEvent event)
3 {
4 if ((keyCode == KeyEvent.KEYCODE_BACK))
5 {
6 final Intent intent = new Intent();
7 intent.putParcelableArrayListExtra ("driverlist", (ArrayList<? extends Parcelable>) m_driverlist);
8 intent.putExtra("planid", mPlanID);
9 setResult(RESULT_OK,intent);
10 finish();
11 }
12 return true;
13 }
gleiches Ergebnis. Ich muss den Button immer noch zweimal drücken, bis die Activity sich beendet. Auch mein Result ist weiterhin null
Anbei mal etwas mehr Code:
1public void onCreate(Bundle savedInstanceState) {
2 super.onCreate(savedInstanceState);
3 setContentView(R.layout.calendar);
4 mContext = this;
5 extras = getIntent().getExtras();
6
7 month = Calendar.getInstance();
8 m_driverlist = (ArrayList<Driver>) extras.get("driverlist");
9 adapter = new CalendarPlanAdapter(this, month);
10 items = new ArrayList<CalendearItem>();
11 mPlanID = extras.getInt("planid");
12
13 GridView gridview = (GridView) findViewById(R.id.gridview);
14 gridview.setAdapter(adapter);
15
16 handler = new Handler();
17 handler.post(calendarUpdater);
18
19
20 TextView title = (TextView) findViewById(R.id.title);
21 title.setText(android.text.format.DateFormat.format("MMMM yyyy", month));
22
23 TextView previous = (TextView) findViewById(R.id.previous);
24 previous.setOnClickListener(new OnClickListener() {
25
26 @Override
27 public void onClick(View v) {
28 if(month.get(Calendar.MONTH)== month.getActualMinimum(Calendar.MONTH)) {
29 month.set((month.get(Calendar.YEAR)-1),month.getActualMaximum(Calendar.MONTH),1);
30 } else {
31 month.set(Calendar.MONTH,month.get(Calendar.MONTH)-1);
32 }
33 refreshCalendar();
34 }
35 });
36
37 TextView next = (TextView) findViewById(R.id.next);
38 next.setOnClickListener(new OnClickListener() {
39
40 @Override
41 public void onClick(View v) {
42 if(month.get(Calendar.MONTH)== month.getActualMaximum(Calendar.MONTH)) {
43 month.set((month.get(Calendar.YEAR)+1),month.getActualMinimum(Calendar.MONTH),1);
44 } else {
45 month.set(Calendar.MONTH,month.get(Calendar.MONTH)+1);
46 }
47 refreshCalendar();
48
49 }
50 });
51
52 gridview.setOnItemClickListener(new OnItemClickListener() {
53 public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
54 TextView date = (TextView)v.findViewById(R.id.date);
55 String day = date.getText().toString();
56 CalendearItem item = (CalendearItem) parent.getItemAtPosition(Integer.valueOf(day));
57 if(day.length()<2){
58 day = "0" + day;
59 }
60 if(date instanceof TextView && !date.getText().equals("")) {
61 if(item !=null){
62 ArrayList<Driver> driverlist = new ArrayList<Driver>();
63 driverlist.add(item.getDriver());
64 Intent intent = new Intent(mContext, ChangeDrive.class);
65 intent.putParcelableArrayListExtra ("alldriverlist", (ArrayList<? extends Parcelable>) m_driverlist);
66 intent.putParcelableArrayListExtra ("driverlist", (ArrayList<? extends Parcelable>) driverlist);
67 intent.putExtra("date", android.text.format.DateFormat.format(item.getDay() + "." + "MM.yyyy", month));
68 intent.putExtra("planid", mPlanID);
69 startActivityForResult(intent, CHANGE_DRIVER_REQUEST);
70 }else{
71 Intent intent = new Intent(mContext, ChangeDrive.class);
72 intent.putParcelableArrayListExtra ("alldriverlist", (ArrayList<? extends Parcelable>) m_driverlist);
73 intent.putExtra("date", android.text.format.DateFormat.format(day + "." + "MM.yyyy", month));
74 intent.putExtra("planid", mPlanID);
75 startActivityForResult(intent, CHANGE_DRIVER_REQUEST);
76
77 }
78 finish();
79 }
80
81 }
82 });
83 }
84
85 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
86 super.onActivityResult(requestCode, resultCode, data);
87
88 if (requestCode == CHANGE_DRIVER_REQUEST) {
89 if (resultCode == RESULT_OK) {
90 extras = data.getExtras();
91 m_driverlist.clear();
92 m_driverlist = (ArrayList<Driver>) extras.get("list");
93 }
94 }
95 }
96 private void setItems() {
97 Iterator it = m_driverlist.iterator();
98 while(it.hasNext()){
99 int i = 0;
100 Driver dr = (Driver) it.next();
101 Iterator at = dr.getDrivingDates().iterator();
102 while(at.hasNext()){
103 String date = (String) at.next();
104 String[] dateArray = date.split("-");
105
106 String day = dateArray[2];
107 String rmonth = dateArray[1];
108 String cmonth = String.valueOf(month.get(Calendar.MONTH)+1);
109 if(cmonth.length()==1){
110 cmonth = "0" + cmonth;
111 }
112 int year= new Integer(dateArray[0]);
113 int cyear = month.get(Calendar.YEAR);
114
115 if(rmonth.equals(cmonth) && year == cyear){
116 CalendearItem calitem = new CalendearItem(day, dr);
117 items.add(calitem);
118 }
119 }
120 i++;
121 }
122 }
123
124 public void refreshCalendar()
125 {
126 TextView title = (TextView) findViewById(R.id.title);
127 adapter.refreshDays();
128 adapter.notifyDataSetChanged();
129 handler.post(calendarUpdater); // generate some random calendar items
130 title.setText(android.text.format.DateFormat.format("MMMM yyyy", month));
131 }
132
133
134
135 public Runnable calendarUpdater = new Runnable() {
136
137 @Override
138 public void run() {
139 items.clear();
140 setItems();
141 adapter.setItems(items);
142 adapter.notifyDataSetChanged();
143 }
144 };
145
146
147 @Override
148 protected void onResume() {
149 // TODO Auto-generated method stub
150 super.onResume();
151 refreshCalendar();
152 }
153
154
155
156 @Override
157 public boolean onKeyDown(int keyCode, KeyEvent event)
158 {
159 if ((keyCode == KeyEvent.KEYCODE_BACK))
160 {
161 final Intent intent = new Intent();
162 intent.putParcelableArrayListExtra ("driverlist", (ArrayList<? extends Parcelable>) m_driverlist);
163 intent.putExtra("planid", mPlanID);
164 setResult(RESULT_OK,intent);
165 finish();
166 }
167 return true;
168 }
169
170
171}
Gruß
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.