android集合
1. Android 中传递对象的集合
Intent intent = ....;//intent定义
ArrayList<User> list = .....;//list赋值
intent.putExtra("userList", list.toArray());
startActivity(intent);
前提是list中的User必须implements Serializable
接收时:
Intent intent = this.getIntent();
Object[] cobjs = (Object[]) intent.getSerializableExtra("userList");
for (int i = 0; i < cobjs.length; i++) {
User user = (User) cobjs[i];
userList.add(user);
}
2. android怎么传一个list集合
方法1: 直接让User类继承Serializable或者Parcelable接口即可,Intent只可以传输序列化的对象<pre t="code" l="java">//User类
public class User implements Serializable{
private String name;
.
}
//直接加入intent
List<User> list = new ArrayList<User>();
Intent intent = new Intent();
intent.putExtra("list",list);
方法2: 把list集合转为字符串表示,可以使用json格式,直接用Gson框架转换即可,再到另一个activity转换回来<pre t="code" l="java">List<User> list = new ArrayList<User>();
Type type = new TypeToken<ArrayList<User>()>(){}.getType();
String json = new Gson().toJson(list,type);
intent.putExtra("list",json);
//转换回List<User>
String json = getIntent.getStringExtra("list");
Type type = new TypeToken<ArrayList<User>()>(){}.getType();
List<User> list = new Gson().fromJson(json,type);
3. 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";
}
}
}
4. 请问怎样从一个android 对象集合中遍历并获取对象
请具体说,你说的是获取一个activity里面的所有的组件吗?比如按钮什么的,那你可以
View r = v.getRootView();获取一个组件的上层容器,比如v是一个button,那么你获得了它上层的容器,然后r里面应该有方法显示包含的组件数,和获取组件的方法,你找下
etgotoX = (EditText) r.findViewById(R.id.gotoX);//这个是获取里面的一个的
5. Android中,我想遍历一个集合,处理其中每个对象的数据
上传平台是网络操作,所以要开子线程,然后用handler通知主线程处理下一条数据,直到集合里的所有数据处理完毕;
6. android开发,多个类都可以调用同一个类中的list<user>集合,怎么做
用sharePreference 把信息保存到手机中的一个XML文件里 就好了。
这是一种常用的保存一些简单信息的方法。比如一些软件记住密码就是这样做。
7. android怎么取出list里面特定的数据
只需要循环一下,判断即可。
示例代码:
1.遍历整个list集合
for(int i=0; i<list.size(); i++){
}
2.在for循环中增加判断代码
if(list.get(i).equals("指定")){}
3.得到每一个item进行判断即可。
8. android中怎么取l集合的下标
首先你要取得文件的路径的字符串,然后定义一个集合l(list)将这些路径都装到集合中,让后通过Intent将这个集合传到下一个Activity(Intent inten=new Intent(),intent.putExtra("list",list);)就ok了。在下一个Activity中通过intent.getExtra("list");就能得到传过来的集合了。我没有详细的代码,过程说得还是比较清楚的,希望对你有帮助。
9. 在Android中 集合怎么声明
你写的第一个是直接实例化,第二个是接口具体实例化。
List是一个接口,而ListArray是一个类。
ListArray继承并实现了List。
所以List不能被构造,但可以向上面那样为List创建一个引用,而ListArray就可以被构造。
List list; //正确 list=null;
List list=new List(); // 是错误的用法
List list = new ArrayList();这句创建了一个ArrayList的对象后把上溯到了List。此时它是一个List对象了,有些ArrayList有但是List没有的属性和方法,它就不能再用了。
10. 如何用android sharedpreferences鍸ist集合
需要加密的,sharedperfreference在Root的手机里可以直接adbpull下来看,里边其实就是个xml,存储的明文,存用户名密码自己加下密吧。用户可以在设置--应用管理里清除数据来清除sharedpreferences.