Android 单击行项目时,将listview的json数据传递给下一个活动
我需要在单击行项目时将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
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{“文档”:{“答复”: