Android 单击行项目时,将listview的json数据传递给下一个活动

Android 单击行项目时,将listview的json数据传递给下一个活动,android,json,listview,Android,Json,Listview,我需要在单击行项目时将listview的json数据传递给下一个活动 这是我的第一个活动 public class DrSearch extends Activity implements OnClickListener, OnItemClickListener { ListView listView; ArrayList<RowItem> rowDoctors; DrSearchListViewAdapter adapter; @Ove

我需要在单击行项目时将listview的json数据传递给下一个活动

这是我的第一个活动

public class DrSearch extends Activity implements OnClickListener,
    OnItemClickListener {
    ListView listView;

    ArrayList<RowItem> rowDoctors;

    DrSearchListViewAdapter adapter;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_dr_search);

        iv.setOnClickListener(this);
        rowDoctors = new ArrayList<RowItem>();
        new DoctorList().execute();

        listView = (ListView) findViewById(R.id.list1);
        adapter = new DrSearchListViewAdapter(getApplicationContext(), R.layout.single_list_dr_search, rowDoctors);
        listView.setAdapter(adapter);
        listView.setOnItemClickListener(this);

    }

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        int actualDataPosition=adapter.getActualPosition(position, rowDoctors);


        if(actualDataPosition>=0)
        {
            String data=rowDoctors.get(actualDataPosition).getId()+","+rowDoctors.get(actualDataPosition).getImageId()+","+rowDoctors.get(actualDataPosition).getTitle();

            Intent newActivity = new Intent(DrSearch.this, DocProfileForUser.class);   

            newActivity.putExtra("Position", actualDataPosition);
            newActivity.putExtra("data", data);
             startActivity(newActivity);
        }

    }

    }
    class DoctorList extends AsyncTask<String, Void, Void> {

        private final HttpClient Client = new DefaultHttpClient();
        private String Content;
        private String Error = null;
        private ProgressDialog Dialog = new ProgressDialog(DrSearch.this);
        String data = "";

        protected void onPreExecute() {
            // TODO Auto-generated method stub
            Dialog.setMessage("Please wait..");
            Dialog.show();
        }

        protected Void doInBackground(String... urls) {




            // To retrieve value from shared preference in another activity
            SharedPreferences sp = getApplicationContext()

                    .getSharedPreferences("sharedPrefName", 0); 

            String user_id = sp.getString("key_name", "defaultvalue"); 

            List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
            nameValuePairs.add(new BasicNameValuePair("access_token",
                    "testermanishrahul234142test"));
            nameValuePairs.add(new BasicNameValuePair("user_id", user_id));

            Content = new ServiceHandler().makeServiceCall(
                    AppConstant.GET_DOCTOR_LIST, 2, nameValuePairs);
            return null;

        }

        protected void onPostExecute(Void result) {
            // TODO Auto-generated method stub
            Dialog.dismiss();



            String OutputData = "";
            JSONObject jsonResponse;

            try {


                jsonResponse = new JSONObject(Content);


                JSONObject jsonMainNode = jsonResponse
                        .getJSONObject("document");

                JSONObject response = jsonMainNode.getJSONObject("response");

                JSONArray jarray = response.getJSONArray("data");

                for (int i = 0; i < jarray.length(); i++) {
                    JSONObject object = jarray.getJSONObject(i);

                    RowItem list = new RowItem();

                    list.setAvailability(object.getString("morning_appointment_start"));
                    list.setAvailability1(object.getString("morning_appointment_end"));
                    list.setAvailability2(object.getString("eve_appointment_start"));
                    list.setAvailability3(object.getString("eve_appointment_end"));
                    list.setTitle(object.getString("firstName"));
                    list.setSpeciality(object.getString("speciality"));
                    list.setImageId(object.getString("image"));
                    list.setId(object.getString("id"));

                    rowDoctors.add(list);


                }


                String status = response.getString("status");
                if (status != null && status.equalsIgnoreCase("1")) {
                }
                String message = response.getString("message");

                Toast.makeText(getApplicationContext(),
                        "" + status + ":" + message, Toast.LENGTH_SHORT).show();





            } catch (JSONException e) {

                e.printStackTrace();
            }




        }
    }


}
public class DrSearch扩展活动实现OnClickListener,
麦克利克监听器{
列表视图列表视图;
ArrayList rowDoctors;
DrSearchListViewAdapter;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u dr\u search);
iv.setOnClickListener(本);
rowDoctors=新阵列列表();
新建DoctorList().execute();
listView=(listView)findViewById(R.id.list1);
adapter=new DrSearchListViewAdapter(getApplicationContext(),R.layout.single\u list\u dr\u search,rowDoctors);
setAdapter(适配器);
setOnItemClickListener(this);
}
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){

int actualDataPosition=adapter.getActualPosition(位置,行); 如果(实际数据位置>=0) { 字符串数据=rowDoctors.get(actualDataPosition).getId()+“,“+rowDoctors.get(actualDataPosition).getImageId()+”,“+rowDoctors.get(actualDataPosition).getTitle(); Intent newActivity=newintent(DrSearch.this,DocProfileForUser.class); newActivity.putExtra(“位置”,实际数据位置); newActivity.putExtra(“数据”,数据); 星触觉(新活动); } } } 类DoctorList扩展了异步任务{ 私有最终HttpClient客户端=新的DefaultHttpClient(); 私有字符串内容; 私有字符串错误=null; private ProgressDialog=新建ProgressDialog(DrSearch.this); 字符串数据=”; 受保护的void onPreExecute(){ //TODO自动生成的方法存根 setMessage(“请稍候…”); Dialog.show(); } 受保护的Void doInBackground(字符串…URL){ //从其他活动中的共享首选项检索值 SharedReferences sp=getApplicationContext() .getSharedReferences(“SharedReferName”,0); String user_id=sp.getString(“key_name”、“defaultvalue”); List nameValuePairs=新的ArrayList(); 添加(新的BasicNameValuePair(“访问令牌”), “TesterManishrahul234142测试”); 添加(新的BasicNameValuePair(“用户id”,用户id)); 内容=新ServiceHandler().makeServiceCall( AppConstant.GET_DOCTOR_LIST,2,nameValuePairs); 返回null; } 受保护的void onPostExecute(void结果){ //TODO自动生成的方法存根 Dialog.dismise(); 字符串OutputData=“”; JSONObject jsonResponse; 试一试{ jsonResponse=新的JSONObject(内容); JSONObject jsonMainNode=jsonResponse .getJSONObject(“文件”); JSONObject response=jsonMainNode.getJSONObject(“response”); JSONArray jarray=response.getJSONArray(“数据”); for(int i=0;i
传递数据:

 Intent newActivity = new Intent(DrSearch.this, DocProfileForUser.class);   
        newActivity.putExtra("data", data);
        startActivity(newActivity);
在第二个活动中接收数据:

    String dataString;
    Bundle extras = getIntent().getExtras();
      if(extras != null) {
        dataString= extras.getString("data");
      }

TextView tvData = (TextView) findViewById(R.id.tv_data);
tvData.setText(dataString);

将数据转换为Json格式,然后将其发送到第二个活动,如下所示:

String data = "{'id : '"+rowDoctors.get(actualDataPosition).getId()+"', 'image_id':'"+rowDoctors.get(actualDataPosition).getImageId()+"', 'title':'"+rowDoctors.get(actualDataPosition).getTitle()+"'}";

Intent newActivity = new Intent(DrSearch.this, DocProfileForUser.class);
newActivity.putExtra("data", data);
startActivity(newActivity);
String data;
Bundle extras = getIntent().getExtras();
if(extras != null) {
data= extras.getString("data");
}

JSONObject jsonObj = new JSONObject(data);
从第二个活动中获取JsonObject,如下所示:

String data = "{'id : '"+rowDoctors.get(actualDataPosition).getId()+"', 'image_id':'"+rowDoctors.get(actualDataPosition).getImageId()+"', 'title':'"+rowDoctors.get(actualDataPosition).getTitle()+"'}";

Intent newActivity = new Intent(DrSearch.this, DocProfileForUser.class);
newActivity.putExtra("data", data);
startActivity(newActivity);
String data;
Bundle extras = getIntent().getExtras();
if(extras != null) {
data= extras.getString("data");
}

JSONObject jsonObj = new JSONObject(data);

那么,问题是什么?错误是什么?如何在第二个activityint actualDataPosition=adapter.getActualPosition(position,RowPosition)中设置它;如果(actualDataPosition>=0){String data=rowDoctors.get(actualDataPosition.getId()+”,“+rowDoctors.get(actualDataPosition.getImageId()+”,“+rowDoctors.get(actualDataPosition.getTitle();Intent newActivity=new Intent(DrSearch.this,DocProfileForUser.class);newActivity.putExtra(“Position”,actualDataPosition);newActivity.putExtra(“数据”,数据);startActivity(newActivity);}我在第二个活动中使用它,并且如何在第二个活动中设置textview和imageView的数据需要这样做尝试{position=getIntent().getIntExtra(“position”,0);data=getIntent().getStringExtra(“数据”);if(data.contains(“,”){String actualDataPosition;String[]userData=data.split(rowDoctors.get(actualDataPosition.getTitle()“,”);for(String item:userData){System.out.println(“item=“+item”);}}}}}}}正如他在我的帖子中所说的那样,阅读它@AsimKrishnaDas@Asim Krishna Das-sir使用您的答案,它将整个url设置为文本视图这是我的json{“文档”:{“答复”: