Android学习之ListView与ArrayAdapter的简单使用

ListView与ArrayAdapter的简单使用

先上效果图



添加listview布局:

  
  
  1. <ListView
  2.        android:layout_width="match_parent"
  3.        android:layout_height="wrap_content"
  4.        android:id="@+id/listview"
  5.        >
  6. </ListView>


在主activity中的实现代码:



  
  
  1. public class ArrayAdapterActivity extends AppCompatActivity {
  2.    private static final String TAG = "ArrayAdapterActivity";
  3.    private ListView mListView;
  4.    private ArrayAdapter<String> mAdapter;
  5.    private List<String> mDatas;
  6.    private int mPosition;  // 被选择的项
  7.    @Override
  8.    protected void onCreate(Bundle savedInstanceState) {
  9.        super.onCreate(savedInstanceState);
  10.        setContentView(R.layout.activity_array_adapter);
  11.        // 初始化listview
  12.        mListView = (ListView) findViewById(R.id.listview);
  13.        // 设置数据
  14.        /*mDataSource = new String[]{"二柱子", "太子", "小樱", "自来也老师", "波风水门", "卡卡西老师", "鼬神",
  15.                "凯老师", "小李", "斑爷", "宁次", "雏田女神", "鹿丸", "手菊"};*/
  16.        mDatas = new LinkedList<String>();
  17.        mDatas.addAll(Arrays.asList(getResources().getStringArray(R.array.data_source)));
  18.        // 设置适配器,绑定数据
  19.        mAdapter = new ArrayAdapter<String>(this,
  20.                android.R.layout.simple_list_item_1,
  21.                mDatas);
  22.        // 为listview设置适配器
  23.        mListView.setAdapter(mAdapter);
  24.        // 为listview注册上下文菜单
  25.        this.registerForContextMenu(mListView);
  26.        // 监听长按操作
  27.        // mListView.setOnItemLongClickListener(this);
  28.    }
  29.   /* // 长按项监听
  30.    @Override
  31.    public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
  32.        mPosition = position;
  33.        Log.d(TAG, "onItemLongClick: position=" + mPosition + "id=" + id);
  34.        return true;
  35.    }*/
  36.    // 创建上下文菜单
  37.    @Override
  38.    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
  39.        menu.setHeaderTitle("请选择您的操作");
  40.        menu.setHeaderIcon(android.R.drawable.ic_menu_info_details);
  41.         /*
  42.            参数1:组id
  43.            参数2:项id
  44.            参数3:顺序
  45.            参数4:菜单项的内容
  46.         */
  47.        menu.add(0, 0, Menu.NONE, "删除该项");
  48.        menu.add(0, 1, Menu.NONE, "取消");
  49.    }
  50.    // 上下文菜单项选择监听
  51.    @Override
  52.    public boolean onContextItemSelected(MenuItem item) {
  53.        // 得到当前被选中的item信息
  54.        AdapterView.AdapterContextMenuInfo menuInfo = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
  55.        mPosition = menuInfo.position;
  56.        switch (item.getItemId()) {
  57.            case 0:
  58.                String sobj = mListView.getAdapter().getItem(mPosition).toString();
  59.                mAdapter.remove(sobj);  // 调用适配器取删除一项
  60.                Log.d(TAG, "onContextItemSelected: 删除该项postion=" + mPosition + "sobj:" + sobj);
  61.                return true;
  62.            case 1:
  63.                Log.d(TAG, "onContextItemSelected: 取消");
  64.                return false;
  65.        }
  66.        return super.onContextItemSelected(item);
  67.    }
  68. }

strings.xml 


  
  
  1. <string-array name="data_source">
  2.        <item>二柱子</item>
  3.        <item>太子</item>
  4.        <item>小樱</item>
  5.        <item>自来也老师</item>
  6.        <item>波风水门</item>
  7.        <item>卡卡西老师</item>
  8.        <item>鼬神</item>
  9.        <item>凯老师</item>
  10.        <item>小李</item>
  11.        <item>斑爷</item>
  12.        <item>宁次</item>
  13.        <item>雏田女神</item>
  14.        <item>鹿丸</item>
  15.        <item>手菊</item>
  16. </string-array>

如有疑问欢迎指出交流!谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值