У меня есть ListActivity для отображения элементов, получаемых из моей ListViewActivity.Намеренные товары onClick to Activity
public class ListTasksActivity extends ListActivity implements AdapterView.OnItemClickListener {
ArrayList<HashMap<String,String>> adapterItems;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent i = getIntent();
ListView lv = getListView();
lv.setOnItemClickListener(this);
ArrayList<HashMap<String, String>> taskItems = (ArrayList<HashMap<String, String>>) i.getSerializableExtra("taskItems");
String[] stringArr = i.getStringArrayExtra("adapterStringArray");
int[] intArr = i.getIntArrayExtra("adapterIntArray");
ListAdapter taskadapter = new SimpleAdapter(this, taskItems,
R.layout.list_item_tasks,
stringArr,
intArr);
setListAdapter(taskadapter);
adapterItems = taskItems;
//CustomAdapterTasks customAdapterTasks = new CustomAdapterTasks((ListViewActivity) ListViewActivity.getAppContext(),);
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String[] adapterString = new String[] {"location","object_id","task_subject","task_action","object"};
int[] adapterInt = new int[] {R.id.singleTaskLocation,R.id.singleTaskInvNumber,R.id.singleTaskSubject,R.id.singleTaskAction,R.id.singleTaskObject};
//neue Oberflaeche starten
Intent in = new Intent(this,ListSingleTaskActivity.class);
in.putExtra("adapterStringArray",adapterString);
in.putExtra("adapterIntArray",adapterInt);
in.putExtra("taskItems",adapterItems);
startActivity(in);
}
}
Если я нажимаю на элемент, то это происходит:
public class ListSingleTaskActivity extends Activity {
private static final int CAMERA_PIC_REQUEST = 2500;
ListView mylistview;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.single_task_layout);
Intent i = getIntent();
ArrayList<HashMap<String, String>> taskItems = (ArrayList<HashMap<String, String>>) i.getSerializableExtra("taskItems");
String[] stringArr = i.getStringArrayExtra("adapterStringArray");
int[] intArr = i.getIntArrayExtra("adapterIntArray");
ListAdapter taskadapter = new SimpleAdapter(this, taskItems,
R.layout.single_task_layout,
stringArr,
intArr)
}
Моя проблема в том, что я хочу, чтобы отправить информацию из щелкнули пункта к новой деятельности и отображать их. В результате вышеприведенного Кодекса он показывает мне все предметы. Не только щелкнули. Что не так?
Я надеюсь, что это ясно, что моя проблема. Если что-то не хватает просто комментарий
отредактирован:
Теперь я получаю эту ошибку:
Caused by: java.lang.ClassCastException: java.util.HashMap cannot be cast to java.util.ArrayList
at de.example.app.ListSingleTaskActivity.onCreate(ListSingleTaskActivity.java:30)
Именно эта линия:
ArrayList<HashMap<String, String>> taskItems = (ArrayList<HashMap<String, String>>) i.getSerializableExtra("taskItems");
Вы отправляете весь список адаптеров для нового действия. И в новой активности тоже есть список. Я бы предложил продолжить читать и понимать концепции. –
Вы отправляете полный список, просто отправляйте 'adapter.get (position)' –
О, это было так просто, спасибо! почему downvote? –