Я пытаюсь использовать метод ListIctivity OnItemListClick для запуска нового действия с более конкретной информацией о элементе списка. Чтобы сделать это, я использую пакет, как рекомендовал главный ответ How do I pass an object from one activity to another on Android?, но независимо от того, что я пытаюсь сделать, OnItemListClick, похоже, ничего не делает. Я также пробовал, не передавая пучок, думая, что это вызвало проблему, как указано здесь Using an intent to start new activity from ListActivity, и это также ничего не делает onClick. Как я могу это сделать, если щелкнуть элемент в списке, он возвращает объект, связанный с этой строкой, и передает его в новое действие?Не удалось запустить намерение из ListActivity OnItemListClick
public class TaskList extends ListActivity {
private ArrayList<Task> stuffToDo, completed;
private TaskAdapter t_adapter;
public Button add;
private File saveFile;
private Bundle clickBundle = new Bundle();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_task_list);
stuffToDo = new ArrayList<Task>();
completed = new ArrayList<Task>();
t_adapter = new TaskAdapter(this, R.layout.row_rl, stuffToDo);
setListAdapter(t_adapter);
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
// Make a bundle and put the Task selected in it then pass this to the
// intent to start the new activity
Intent launchIntent = new Intent(getApplicationContext(), TaskDisplay.class);
Log.d("Debug", "Intent made");
clickBundle.clear();
clickBundle.putSerializable("Task", stuffToDo.get(position));
Log.d("Debug", "Task put in bundle");
launchIntent.putExtras(clickBundle);
this.startActivity(launchIntent);
Log.d("Debug", "launched");
}
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case R.id.addtaskbutton:
promptUserForInfo();
t_adapter.notifyDataSetChanged();
// added for debug
saveInfo();
return true;
case R.id.cleartasks:
clearTasks();
t_adapter.notifyDataSetChanged();
return true;
}
return super.onMenuItemSelected(featureId, item);
}
и мой код, который находится в более специфической активности
// Set the bundle equal to the extra put with the intent
input = this.getIntent().getExtras();
// If there are extras(a task) then assign it to the empty task variable
if (input != null){
task = (Task) input.getSerializable("Task");
}
поймать ли ваш прослушивателя события на всех? –
У вас задан класс TaskDisplay в манифесте ур? –