美文网首页
使用SimpleAdapter和ArrayAdapter设置列表

使用SimpleAdapter和ArrayAdapter设置列表

作者: 晨曦诗雨 | 来源:发表于2018-12-18 08:54 被阅读0次

设置页面布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <ListView
        android:id="@+id/listview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"></ListView>
</LinearLayout>
使用SimpleAdapter设置列表

新建一个item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <ImageView
        android:id="@+id/pic"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/chgusr"
        android:layout_marginLeft="15dp"/>

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="韩晨曦"
        android:textColor="#000000"
        android:textSize="20sp" />

</LinearLayout>

java代码功能实现

public class SecondActivity extends AppCompatActivity implements AdapterView.OnItemClickListener,AbsListView.OnScrollListener {
     private Context mContext;
    private ListView listView;
    private SimpleAdapter simpleAdapter;
    private ArrayAdapter<String> arrayAdapter;
    public List<Map<String,Object>> addList;
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
        mContext = this;
//        加载数据链表的例子(ArrayAdapter为例)
        listView=(ListView) findViewById(R.id.listview);
//        新建适配器
//        参数:(上下文,当前listView加载的每一个列表项所对应的布局文件,数据源)
//        适配器加载数据源
        String[] arr_data={"ff","df","fsdf","fdsdf"};
        arrayAdapter=new ArrayAdapter<String>(mContext,android.R.layout.simple_list_item_1,arr_data);
        //        加载数据链表的例子(simpleAdapter为例)
//               参数(上下文,数据源(特定泛型集合组成,map所组成的list集合,每一个map对应列表的一行),
//              列表项的布局文件,Map中的键名,绑定数据视图中的id,与from成对应关系)
                 addList=new ArrayList<Map<String,Object>>();
        simpleAdapter=new SimpleAdapter(mContext,getData(),R.layout.item,new String[]{"pic","text"},new int[]{R.id.pic,R.id.text});
//        使用视图加载适配器
//        listView.setAdapter(arrayAdapter);
        listView.setAdapter(simpleAdapter);
//设置监听事件
        listView.setOnItemClickListener(this);
        listView.setOnScrollListener(this);
    }
    private  List<Map<String,Object>>  getData(){
//        数据源
        for (int i=1;i<=20;i++){
            Map<String,Object>  map=new HashMap<String, Object>();
            map.put("pic", R.drawable.chgusr);
            map.put("text","我是第"+i+"个");
            addList.add(map);
        }
        return addList;
    }
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            String text= listView.getItemAtPosition(position)+"";
          Toast.makeText(this,"position="+position+"text="+text, Toast.LENGTH_SHORT).show();
    }
    @Override
    public void onScrollStateChanged(AbsListView view, int scrollState) {
        switch (scrollState){
            case SCROLL_STATE_FLING:
                Log.i("main","用户在手指离开屏幕之前,由于用力滑了一下,视图任依靠惯性继续滑动");
                Map<String,Object>  map=new HashMap<String, Object>();
                map.put("pic", R.drawable.chgusr);
                map.put("text","添加项");
                addList.add(map);
                simpleAdapter.notifyDataSetChanged();
                break;
            case SCROLL_STATE_IDLE:
                Log.i("main","视图已经停止滑动");
                break;
            case SCROLL_STATE_TOUCH_SCROLL:
                Log.i("main","手指没有离开屏幕,视图正在滑动");
                break;
        }
    }
    @Override
    public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
    }
}

相关文章

网友评论

      本文标题:使用SimpleAdapter和ArrayAdapter设置列表

      本文链接:https://www.haomeiwen.com/subject/apbckqtx.html