Android 如何启动新的活动表单ListView并为其提供多个参数

Android 如何启动新的活动表单ListView并为其提供多个参数,android,listview,android-activity,parameters,Android,Listview,Android Activity,Parameters,下面是我的代码,它在listview中显示从json解析的数据。 我想在用户单击列表中的任何项目时启动新活动 我遵循这个url,这是json文件 当用户单击listview中的任何项目并将剩余的json值作为参数传递时,如何启动新活动 现在我的列表视图只显示姓名,但我想将剩余的项目(如电子邮件、性别和手机)传递给其他活动。 “id”:“c200”, “姓名”:“Ravi Tamada”, “电子邮件”:ravi@gmail.com", “地址”:“xx xx xxxx,x-街道,x-国家”,

下面是我的代码,它在listview中显示从json解析的数据。
我想在用户单击列表中的任何项目时启动新活动

我遵循这个url,这是json文件

当用户单击listview中的任何项目并将剩余的json值作为参数传递时,如何启动新活动

现在我的列表视图只显示姓名,但我想将剩余的项目(如电子邮件、性别和手机)传递给其他活动。


“id”:“c200”,
“姓名”:“Ravi Tamada”,
“电子邮件”:ravi@gmail.com",
“地址”:“xx xx xxxx,x-街道,x-国家”,
“性别”:“男性”,
“电话”:{
“移动”:“+9100000000000”,
“家”:“00 000000”,
“办公室”:“00 000000”
公共类NewsRowAdapter扩展了ArrayAdapter{
私人活动;
私人清单项目;
私有项objBean;
私人int row;
语境;
公共NewsRowAdapter(活动行为、int资源、列表arrayList){
超级(act、资源、arrayList);
这个活动=行动;
this.row=资源;
this.items=arrayList;
}
@凌驾
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
视图=转换视图;
视窗座;
如果(视图==null){
LayoutFlater充气机=(LayoutFlater)活动
.getSystemService(上下文布局\充气机\服务);
视图=充气机。充气(行,空);
holder=新的ViewHolder();
视图.设置标签(支架);
}否则{
holder=(ViewHolder)view.getTag();
}
if((items==null)| |((position+1)>items.size())
返回视图;
objBean=items.get(位置);
holder.tvName=(TextView)view.findViewById(R.id.txtText);
if(holder.tvName!=null&&null!=objBean.getName()
&&objBean.getName().trim().length()>0){
holder.tvName.setText(Html.fromHtml(objBean.getName());
意图=新意图(上下文,TodayLunch.class);
intent.putExtra(“name”,Html.fromHtml(objBean.getName());
上下文。startService(意图);
}
返回视图;
}
公共类视图持有者{
公共文本视图tvName、tvCity、tvBDate、tvGender、tvAge;
}
}
package com.school午餐应用程序;
公共类SeletecDayofweek扩展活动实现了McClickListener{
私有静态最终字符串rssFeed=”http://192.168.2.100/jsonparsing.txt";
私有静态最终字符串数组_NAME=“student”;
私有静态最终字符串ID=“ID”;
私有静态最终字符串NAME=“NAME”;
私有静态最终字符串CITY=“dish”;
私有静态最终字符串GENDER=“GENDER”;
私有静态最终字符串AGE=“AGE”;
私有静态最终字符串BIRTH\u DATE=“birthdate”;
ListView ListMain菜单;
列表数组列表;
//主适应mma;
NewsRowAdapter对象适配器;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
设置内容视图(R.layout.selectdayofweek);
listMainMenu=(ListView)findViewById(R.id.listMainMenu2);
listMainMenu.setOnItemClickListener(此);
arrayOfList=新的ArrayList();
if(URLUtils.isNetworkAvailable(SeletecDayofweek.this)){
新建MyTask().execute(rssFeed);
}否则{
showToast(“无网络连接!!!”;
}
}
//我的任务开始了。。。
类MyTask扩展了AsyncTask{
ProgressDialog;
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
pDialog=newprogressdialog(SeletecDayofweek.this);
设置消息(“加载…”);
pDialog.setCancelable(假);
pDialog.show();
}
@凌驾
受保护的字符串doInBackground(字符串…参数){
返回URLUtils.getJSONString(参数[0]);
}
@凌驾
受保护的void onPostExecute(字符串结果){
super.onPostExecute(结果);
if(null!=pDialog&&pDialog.isShowing()){
pDialog.disclose();
}
if(null==result | | result.length()==0){
showToast(“从web上找不到数据!!!”;
SeletecDayofweek.this.finish();
}否则{
试一试{
JSONObject mainJson=新的JSONObject(结果);
JSONArray JSONArray=
mainJson.getJSONArray(数组名称);
for(int i=0;i
您可以使用

您在ListView上设置了OnClickListner,它未包含在代码中,因此我暗示:

OnItemClickListener listener = new OnItemClickListener (){

  @Override
  onItemClick(AdapterView<?> parent, View view, int position, long id){
      String name = ((TextView) view.findViewById(R.id.txtText)).getText();
      Intent intent = new Intent(context,WhatEverYouWant.class);
      intent.putExtra("name",name);
      startActivity(intent);
  }

}

ListView listView = getView().findViewById(R.id.listview);
listView.setOnItemClickListener (listener);
OnItemClickListener=新的OnItemClickListener(){
@凌驾
onItemClick(AdapterView父对象、视图、整型位置、长id){
字符串名称=((TextView)view.findViewById(R.id.txtText)).getText();
意图=
OnItemClickListener listener = new OnItemClickListener (){

  @Override
  onItemClick(AdapterView<?> parent, View view, int position, long id){
      String name = ((TextView) view.findViewById(R.id.txtText)).getText();
      Intent intent = new Intent(context,WhatEverYouWant.class);
      intent.putExtra("name",name);
      startActivity(intent);
  }

}

ListView listView = getView().findViewById(R.id.listview);
listView.setOnItemClickListener (listener);
    public ArrayList<String> Id = new ArrayList<String>();
public  ArrayList<String> Name = new ArrayList<String>();
   public  ArrayList<String> Gender= new ArrayList<String>();


     for (int i = 0; i < jsonArray.length(); i++) {
         JSONObject objJson = jsonArray.getJSONObject(i);

                // here you can get id,name,city...

          Id.add(objJson.getInt("id"));

         Name.add(objJson.getString("name")); 
         Gender.add(objJson.getString("Gender"));




 //You need to use this code in the class where you have the view , 

// list item click 
     List_View.setOnItemClickListener(new AdapterView.OnItemClickListener() {

                    @Override
                    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
                        // TODO Auto-generated method stub



        Intent i = new Intent(this, abc.class); 
// here arg2 is argument of onitemclick method
// this will pick the same item from array list that is clicked on list view 
                i.putExtra("key_name" , Id.get(arg2));
                i.putExtra("key_name" , Name.get(arg2));
                i.putExtra("key_name" , Gender.get(arg2));

                startActivity(i);       


                }




                });