大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
按以下代码可获取到list数据:
乌海网站建设公司创新互联公司,乌海网站设计制作,有大型网站制作公司丰富经验。已为乌海近1000家提供企业网站建设服务。企业网站搭建\外贸网站建设要多少钱,请找那个售后服务好的乌海做网站的公司定做!
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 = "";
// 调用的方法名称
// String methodName = "GetSjSearch";
// EndPoint
// String endPoint = "";
// SOAP Action
// String soapAction = "";
// ListMapString, Object mList;
ListView ListV;
HashMapString, Object map = new HashMapString, Object();
private ListMapString,String listItems;
SimpleAdapter mListAdapter;
String name="";
String addr="";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list);
listItems = new ArrayListMapString,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 AsyncTaskObject, 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 = "";
// 调用的方法名称
String methodName = "GetSjSearch";
// EndPoint
String endPoint = "";
// SOAP Action
String soapAction = "";
// 指定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(count10)
{
for (int i = 0; i count1; i++) {
MapString,String listItem = new HashMapString, 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";
}
}
}
[img]只需要循环一下,判断即可。
示例代码:
1.遍历整个list集合
for(int i=0; ilist.size(); i++){
}
2.在for循环中增加判断代码
if(list.get(i).equals("指定")){}
3.得到每一个item进行判断即可。
List是一个接口,而ArrayList是List的一个实现类,对于android和J2SE来讲,两者之间的区别不大。
方法1: 直接让User类继承Serializable或者Parcelable接口即可,Intent只可以传输序列化的对象pre t="code" l="java"//User类
public class User implements Serializable{
private String name;
.
}
//直接加入intent
ListUser list = new ArrayListUser();
Intent intent = new Intent();
intent.putExtra("list",list);
方法2: 把list集合转为字符串表示,可以使用json格式,直接用Gson框架转换即可,再到另一个activity转换回来pre t="code" l="java"ListUser list = new ArrayListUser();
Type type = new TypeTokenArrayListUser()(){}.getType();
String json = new Gson().toJson(list,type);
intent.putExtra("list",json);
//转换回ListUser
String json = getIntent.getStringExtra("list");
Type type = new TypeTokenArrayListUser()(){}.getType();
ListUser list = new Gson().fromJson(json,type);
Android中加载list列表数据主要是通过Adapter实现,可用显示列表的控件如下:
Listview
GridView
ExpandListview
显示具体的数据需要通过Adapter实现,Android目前有4种Adapter:
ArrayAdapter
SimpleAdapter
SimpleCursorAdapter
BaseAdapter ( 自定义Adapter)
具体操作步骤 ( 以自定义Adapter为例):
在xml中定义Listview布局
在代码中通过ID找到Listview控件
构建Adapter对象,新建一个类继承自BaseAdapter,重写它的四个方法,具体如下代码
构造好适配器后设置Listview的adapter对象为新建的适配器,界面即可显示数据
在数据变动的地方,只需要调用adapter的notifyDataSetChanged方法即可刷新界面
package com.beryl.gougou;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import java.util.List;
/**
* Created by yt on 16/11/14.
*/
public class MyAdapter extends BaseAdapter {
private ListString datalist;
private LayoutInflater inflater;
public MyAdapter(Context context ,ListString datalist){
this.datalist = datalist;
inflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
return datalist.size();
}
@Override
public Object getItem(int position) {
return datalist.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//此处参考网上的view缓存机制,示例demo不多说明
return null;
}
}
通过设置输入类型参数 inputType进行限制。 以下例子定义了文本输入框EditText的id,控件的宽度和高度,并通过inputType类型限制输入为number。 这样使用者点击该控件时,会触发手机原生态接口,并让键盘的默认布局为数字。EditTextandroid:id="@+id/editText2"android:layout_width="match_parent"android:layout_height="wrap_content"android:inputType="number" /