Android 单击“活动”上的意向项
我有此ListActivity用于显示从我的ListViewActivity获取的项目Android 单击“活动”上的意向项,android,listview,android-intent,android-activity,listactivity,Android,Listview,Android Intent,Android Activity,Listactivity,我有此ListActivity用于显示从我的ListViewActivity获取的项目 public class ListTasksActivity extends ListActivity implements AdapterView.OnItemClickListener { ArrayList<HashMap<String,String>> adapterItems; @Override public void onCreate(Bundle
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);
}
}
是这样的:
ArrayList<HashMap<String, String>> taskItems = (ArrayList<HashMap<String, String>>) i.getSerializableExtra("taskItems");
ArrayList taskItems=(ArrayList)i.getSerializableExtra(“taskItems”);
您正在发送整个数组,这就是为什么在单击“仅发送选定对象”时会看到整个对象,如下所示:
in.putExtra("adapterStringArray",adapterString.get[position]);
in.putExtra("adapterIntArray",adapterInt[position]);
in.putExtra("taskItems",adapterItems.get(position));
对于第二个崩溃问题,请尝试此
HashMap<String, String> hashMap = (HashMap<String, String>) intent.getSerializableExtra("taskItems");
HashMap HashMap=(HashMap)intent.getSerializableExtra(“任务项”);
您正在发送整个数组,这就是为什么在单击“仅发送选定对象”时会看到整个对象,如下所示:
in.putExtra("adapterStringArray",adapterString.get[position]);
in.putExtra("adapterIntArray",adapterInt[position]);
in.putExtra("taskItems",adapterItems.get(position));
对于第二个崩溃问题,请尝试此
HashMap<String, String> hashMap = (HashMap<String, String>) intent.getSerializableExtra("taskItems");
HashMap HashMap=(HashMap)intent.getSerializableExtra(“任务项”);
在ListTasksActivity中发送选定数据:
Intent in = new Intent(this,ListSingleTaskActivity.class);
in.putExtra("adapterStringArray",adapterString.get(position));
in.putExtra("adapterIntArray",adapterInt[position]);
in.putExtra("taskItems",adapterItems.get(position));
startActivity(in);
在ListTasksActivity中发送选定数据:
Intent in = new Intent(this,ListSingleTaskActivity.class);
in.putExtra("adapterStringArray",adapterString.get(position));
in.putExtra("adapterIntArray",adapterInt[position]);
in.putExtra("taskItems",adapterItems.get(position));
startActivity(in);
更改您的OnItem单击侦听器,如下所示,然后它将工作
@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.get(position));
in.putExtra("adapterIntArray",adapterInt[position]);
in.putExtra("taskItems",adapterItems.get(position));
startActivity(in);
}
@覆盖
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
String[]adapterString=新字符串[]{“位置”、“对象id”、“任务主题”、“任务操作”、“对象”};
int[]adapterInt=new int[]{R.id.singleTaskLocation,R.id.singleTaskInvNumber,R.id.singleTaskSubject,R.id.singleTaskAction,R.id.singleTaskObject};
//新奥伯拉奇星酒店
Intent in=新Intent(此,ListSingleTaskActivity.class);
in.putExtra(“adapterStringArray”,adapterString.get(position));
in.putExtra(“适配器tarray”,适配器[位置]);
in.putExtra(“任务项”,adapterItems.get(position));
星触觉(in);
}
更改您的OnItem,然后单击下面的侦听器,它就会工作
@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.get(position));
in.putExtra("adapterIntArray",adapterInt[position]);
in.putExtra("taskItems",adapterItems.get(position));
startActivity(in);
}
@覆盖
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
String[]adapterString=新字符串[]{“位置”、“对象id”、“任务主题”、“任务操作”、“对象”};
int[]adapterInt=new int[]{R.id.singleTaskLocation,R.id.singleTaskInvNumber,R.id.singleTaskSubject,R.id.singleTaskAction,R.id.singleTaskObject};
//新奥伯拉奇星酒店
Intent in=新Intent(此,ListSingleTaskActivity.class);
in.putExtra(“adapterStringArray”,adapterString.get(position));
in.putExtra(“适配器tarray”,适配器[位置]);
in.putExtra(“任务项”,adapterItems.get(position));
星触觉(in);
}
现在,您正在意向中传递完整的数组
实际上,您需要传递已在intent中单击的项的值。
使用此getItemAtPosition(position)并将其发送到in.putExtra中,这样只有您才能获取所选项目
更多信息 现在,您正在意向中传递完整的数组 实际上,您需要传递已在intent中单击的项的值。 使用此getItemAtPosition(position)并将其发送到in.putExtra中,这样只有您才能获取所选项目
更多信息 您正在将整个adapteritems列表发送到新活动。在新的活动中,您也有一个列表视图。我建议您进一步阅读和理解概念。您正在发送完整的列表,只需发送
adapter.get(position)
哦,太简单了,谢谢!为什么要投否决票?@raymondis有些人如果只是不喜欢某个问题而不是评论,那么就投否决票,别担心,这会发生在每个人身上。也就是说,一定要尽量缩短代码示例。好的,谢谢:)您正在向新活动发送整个adapteritems列表。在新的活动中,您也有一个列表视图。我建议您进一步阅读和理解概念。您正在发送完整的列表,只需发送adapter.get(position)
哦,太简单了,谢谢!为什么要投否决票?@raymondis有些人如果只是不喜欢某个问题而不是评论,那么就投否决票,别担心,这会发生在每个人身上。也就是说,一定要尽量缩短代码示例。好的,谢谢:)adapterString是arrayy字符串[]adapterString=新字符串[]{“位置”、“对象id”、“任务主题”、“任务操作”、“对象”};我又犯了一个错误,我知道。。。你能帮我吗?:)您将任务项发送到哪里?它来自这里:in.putExtra(“taskItems”,adapterItems.get(position))@NehaAgarwal我不知道这是否对我有帮助您正在尝试在第二个活动中获取地图的arraylist,但实际上您正在发送一个Hashmap查看我编辑的answeradapterString是arrayy String[]adapterString=新字符串[]{“位置”、“对象id”、“任务主题”、“任务动作”、“对象”};我又犯了一个错误,我知道。。。你能帮我吗?:)您将任务项发送到哪里?它来自这里:in.putExtra(“taskItems”,adapterItems.get(position))@NehaAgarwal我不知道这对我是否有帮助。你正在第二个活动中尝试获取地图的arraylist,但实际上你发送的只是一个Hashmap,看看我编辑的答案