① android客户端 json解析为list<map<>>怎么装入simpleadapter
java">
{
privateList<Map<String,Object>>data;
privateMap<String,Object>map;
privateContextctx;
privateTextViewtvBookName;
privateTextViewtvPerson;
privateTextViewtvCompany;
privateTextViewresult;
privateTextViewtvNum;
privateLinearLayoutlayout_bj;
privateLinearLayoutlayout;
//加载布局
LayoutInflatervi;
LayoutInflatervi1;
publicDataAdapter(Contextcontext,List<Map<String,Object>>data){
ctx=context;
this.data=data;
}
@Override
publicViewgetView(intpostion,Viewarg1,ViewGrouparg2){
//TODOAuto-generatedmethodstub
if(postion<data.size()){
map=data.get(postion);
}
layout=newLinearLayout(ctx);
vi=(LayoutInflater)ctx
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
vi.inflate(R.layout.list_content,layout,true);
//layout.setBackgroundColor(0xffB4B4B4);
layout_bj=(LinearLayout)layout.findViewById(R.id.list_one);
tvBookName=(TextView)layout.findViewById(R.id.book_name);
tvPerson=(TextView)layout.findViewById(R.id.person_name);
tvCompany=(TextView)layout.findViewById(R.id.company_name);
tvNum=(TextView)layout.findViewById(R.id.book_num);
tvBookName.setText(map.get("书名").toString());
tvPerson.setText(map.get("作者").toString());
tvCompany.setText(map.get("出版社").toString());
tvNum.setText(map.get("藏书").toString());
Stringurl=map.get("链接").toString();
//添加监听
addListener(tvBookName,tvPerson,tvCompany,url,layout_bj);
returnlayout;
}
以上是适配器代码,在主Activity中添加listview即可
listView.setAdapter(newDataAdapter(BookReaultActivity.this,
list))
② android 两个Activity之间传递ArrayList<Map<String, Object>>,代码该怎么写
通过共享appication做处理
先转换成json,第二个activity再转换回list
public class SerializableMap implements Serializable {
ArrayList<Map<String, Object>> listMap;
//get set方法
}
最后通过putSerializable("listMap
",SerializableMap获得listMap);
③ android studio中方法返回的类型是list<map<string,objects>>该return 一个什么
这个list的类型要带泛型
④ Android。怎么访问list<map<string,object>>里面的变量,比如。
你得继承 BaseAdapter 实现一个 adapter 类,override 里面诸如 getCount ,getItem 方法就好。
⑤ android list和map的区别
List按对象进入的顺序保存对象,不做排序或编辑操作)。Map同样对每个
元素保存一份,但这是基于"键"的,Map也有内置的排序,因而不关心元素添加的顺序。如果添加元素的顺序对你很重要,应该使用
LinkedHashSet或者LinkedHashMap.
⑥ 在android开发中,map可以完全替代bean吗
map只能存储键值对,或者嵌套使用(感觉略复杂)。
而bean对象却是可以存储一个完整的包含多属性的复杂对象,在界面绘制时一般用list(map<key,value>)来传递对应的值,但是请求回调接收时还是用bean来装载对象的好。
javaBean的话就是有get/set方法,可以对数据进行一些必要的操作,还有javaBean里面可以添加方法.map的话字段你不确定,需要额外的写好那些key是什么东西。
javaBean字段可以添加注释说明,类型也是固定的,那么使用者就知道该放什么数据,而map如果存放了多个类型只能是object类型的,使用还得知道具体类型,还要做相应的类型转换!)
简单的说:我认为map不能完全替代bean,只是在使用中某些场合可以适当选择map使用下。
⑦ android,ArrayList<Map<String,Object>>()传不进值。
目测是IDs[j])等没有值,map的size()肯定为3啊。。就是3个空的map,它也输出3
⑧ Android 把服务器jsno数据解析为list map,怎么提取其中的变量比如说
UserList很明显是个List UserList.get(0).get("values")这样取值首先是得到List里的map
⑨ android 怎么取list数据
按以下代码可获取到list数据:
package com.example.sdtg.sdsw;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.SoapFault;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import org.xmlpull.v1.XmlPullParserException;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;
public class ListActivity extends Activity {
// 命名空间
// String nameSpace = "http://tempuri.org/";
// 调用的方法名称
// String methodName = "GetSjSearch";
// EndPoint
// String endPoint = "http://192.168.0.145/webservice2/gswebservice.asmx";
// SOAP Action
// String soapAction = "http://tempuri.org/GetSjSearch";
// List<Map<String, Object>> mList;
ListView ListV;
HashMap<String, Object> map = new HashMap<String, Object>();
private List<Map<String,String>> listItems;
SimpleAdapter mListAdapter;
String name="";
String addr="";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list);
listItems = new ArrayList<Map<String,String>>();
ListV=(ListView)findViewById(R.id.ListView01);
Handler indicate = new Handler();
//获取主页面传的值
final Intent data = getIntent();
name=data.getStringExtra("Name");
addr=data.getStringExtra("Addr");
new NetAsyncTask().execute();
ListV.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
//获得选中项的HashMap对象
TextView viewtmc = (TextView) arg1.findViewById(R.id.textListmc);
TextView viewdz = (TextView) arg1.findViewById(R.id.textlistdz);
TextView viewid = (TextView) arg1.findViewById(R.id.textlistid);
//String playerChanged = c.getText().toString();
Bundle bundle = new Bundle();
bundle.putString("Name", viewtmc.getText().toString());
bundle.putString("Addr", viewdz.getText().toString());
bundle.putString("ID", viewid.getText().toString());
final Intent data = getIntent();
data.putExtras(bundle);
//跳转回MainActivity
//注意下面的RESULT_OK常量要与回传接收的Activity中onActivityResult()方法一致
ListActivity.this.setResult(RESULT_OK, data);
//关闭当前activity
ListActivity.this.finish();
}
});
};
class NetAsyncTask extends AsyncTask<Object, Object, String> {
@Override
protected void onPostExecute(String result) {
if (result.equals("success")) {
mListAdapter = null;
mListAdapter = new SimpleAdapter(ListActivity.this, listItems, R.layout.item,new String[]{"title", "info", "img"}, new int[]{R.id.textListmc, R.id.textlistdz, R.id.textlistid});
ListV.setAdapter(mListAdapter);
}
super.onPostExecute(result);
}
@Override
protected String doInBackground(Object... params) {
// 命名空间
String nameSpace = "http://tempuri.org/";
// 调用的方法名称
String methodName = "GetSjSearch";
// EndPoint
String endPoint = "http://192.168.0.145/webservice2/gswebservice.asmx";
// SOAP Action
String soapAction = "http://tempuri.org/GetSjSearch";
// 指定WebService的命名空间和调用的方法名
SoapObject rpc = new SoapObject(nameSpace, methodName);
// 设置需调用WebService接口需要传入的两个参数mobileCode、userId
rpc.addProperty("name", name);
rpc.addProperty("address", addr);
// 生成调用WebService方法的SOAP请求信息,并指定SOAP的版本
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
// SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER12);
envelope.bodyOut = rpc;
// 设置是否调用的是dotNet开发的WebService
envelope.dotNet = true;
// 等价于envelope.bodyOut = rpc;
envelope.setOutputSoapObject(rpc);
HttpTransportSE transport = new HttpTransportSE(endPoint);
try {
// 调用WebService
transport.call(soapAction, envelope);
} catch (Exception e) {
e.printStackTrace();
}
SoapObject object;
// 开始调用远程方法
try {
object = (SoapObject) envelope.getResponse();
int count = object.getPropertyCount();
// 得到服务器传回的数据
int count1 = object.getPropertyCount();
if(count1>0)
{
for (int i = 0; i < count1; i++) {
Map<String,String> listItem = new HashMap<String, String>();
SoapObject soapProvince = (SoapObject)object.getProperty(i);
listItem.put("title", soapProvince.getProperty("DJXX_NSRMC").toString());
listItem.put("info", soapProvince.getProperty("DJXX_ZCDJ").toString());
//listItem.put("img", soapProvince.getProperty("DJXX_NSRSBH").toString());
listItems.add(listItem);
}}
} catch (IOException e) {
e.printStackTrace();
//return "IOException";
}
return "success";
}
}
}
⑩ android如何将一个list<map<list<string1>,list<String>>>转换成json
map1.put("name","小明");
map1.put("age","23");
map1.put("sex","男");
list.add(map1);
map2.put("name","小王");
map2.put("age","24");
map2.put("sex","女");
list.add(map2);
map3.put("name","小张");
map3.put("age","22);