u010029536
七夜style
采纳率14.3%
2016-05-04 11:00 阅读 2.5k

listView中的item经过长按之后会出现复选框

20

就如同图片中那样

图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • bdmh bdmh 2016-05-04 11:17

    你可以在数据源中增加一个字段,代表是否显示复选框,长按时,将次标记置为true,然后在getview中判断该标记,处理界面

    点赞 评论 复制链接分享
  • qq_32114325 qq913717524 2016-05-04 15:54

    package com.example.day01;

    import android.app.Activity;
    import android.content.Context;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.AdapterView.OnItemClickListener;
    import android.widget.AdapterView.OnItemLongClickListener;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
    import android.widget.Toast;

    public class MainActivity extends Activity implements OnItemClickListener,OnItemLongClickListener{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //Activity对象包含一个window窗口
    //这句代码的含义是将一些view添加到
    //activity对应的window窗口上
    //这个方法底层的实现?
    //1.根据context找到对应的资源文件
    //getResources().getLayout(R.layout.activity_main);
    //2.底层借助pull解析器解析xml
    //3.底层借助反射构建xml中元素的对象
    //4.将xml对应的view元素对象添加到activity对应的窗口上
    setContentView(R.layout.activity_main);
    //1.ListView (View)
    ListView lsv=(ListView)
    findViewById(R.id.lsv01);
    //2.Adapter (ArrayAdapter)
    //2.1 Context
    Context context=this;
    //2.2 item view 对应的资源
    //int textViewResourceId=R.layout.list_item_1;
    int textViewResourceId=
    android.R.layout.simple_list_item_checked;
    //2.3 item data
    String[] objects={"关羽","张飞","赵云","黄忠","马超"};
    ArrayAdapter adapter=
    new ArrayAdapter(
    context,
    textViewResourceId,//item view 的资源文件
    objects);
    //3.关联Adapter
    lsv.setAdapter(adapter);//ListAdapter
    //此时当listview在显示数据时,
    //底层会调用adapter的getView
    //方法获得item
    //4.添加监听器
    lsv.setOnItemClickListener(this);
    //长按事件
    lsv.setOnItemLongClickListener(this);
    }
    /**点击ListView的某个item时会自动回调此方法*/
    @Override
    public void onItemClick(
    AdapterView<?> parent, //ListView
    View view,//TextView
    int position,
    long id) {
    Log.i("TAG","parent="+parent);
    Log.i("TAG","view="+view);
    Log.i("TAG","position="+position);
    //在此方法中以toast的形式
    //显示点击的item的内容
    //1.根据postion获得item对象的内容
    String item=(String)
    parent.getItemAtPosition(position);
    //2.显示
    Toast.makeText(this,
    item, 0).show();
    }
    /**长按listView的某个Item时会自动执行此方法*/
    @Override
    public boolean onItemLongClick(
    AdapterView<?> parent,
    View view,
    int position, long id) {
    Toast.makeText(this,"可以多选了",0).show();
    //设置ListView的选择模式为多选模式
    ((ListView)parent).
    setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
    return true;//返回为true表示事件已处理,后续无需再处理
    }
    }

    点赞 评论 复制链接分享
  • qq_32114325 qq913717524 2016-05-04 15:54

    package com.example.day01;

    import android.app.Activity;
    import android.content.Context;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.AdapterView.OnItemClickListener;
    import android.widget.AdapterView.OnItemLongClickListener;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
    import android.widget.Toast;

    public class MainActivity extends Activity implements OnItemClickListener,OnItemLongClickListener{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //Activity对象包含一个window窗口
    //这句代码的含义是将一些view添加到
    //activity对应的window窗口上
    //这个方法底层的实现?
    //1.根据context找到对应的资源文件
    //getResources().getLayout(R.layout.activity_main);
    //2.底层借助pull解析器解析xml
    //3.底层借助反射构建xml中元素的对象
    //4.将xml对应的view元素对象添加到activity对应的窗口上
    setContentView(R.layout.activity_main);
    //1.ListView (View)
    ListView lsv=(ListView)
    findViewById(R.id.lsv01);
    //2.Adapter (ArrayAdapter)
    //2.1 Context
    Context context=this;
    //2.2 item view 对应的资源
    //int textViewResourceId=R.layout.list_item_1;
    int textViewResourceId=
    android.R.layout.simple_list_item_checked;
    //2.3 item data
    String[] objects={"关羽","张飞","赵云","黄忠","马超"};
    ArrayAdapter adapter=
    new ArrayAdapter(
    context,
    textViewResourceId,//item view 的资源文件
    objects);
    //3.关联Adapter
    lsv.setAdapter(adapter);//ListAdapter
    //此时当listview在显示数据时,
    //底层会调用adapter的getView
    //方法获得item
    //4.添加监听器
    lsv.setOnItemClickListener(this);
    //长按事件
    lsv.setOnItemLongClickListener(this);
    }
    /**点击ListView的某个item时会自动回调此方法*/
    @Override
    public void onItemClick(
    AdapterView<?> parent, //ListView
    View view,//TextView
    int position,
    long id) {
    Log.i("TAG","parent="+parent);
    Log.i("TAG","view="+view);
    Log.i("TAG","position="+position);
    //在此方法中以toast的形式
    //显示点击的item的内容
    //1.根据postion获得item对象的内容
    String item=(String)
    parent.getItemAtPosition(position);
    //2.显示
    Toast.makeText(this,
    item, 0).show();
    }
    /**长按listView的某个Item时会自动执行此方法*/
    @Override
    public boolean onItemLongClick(
    AdapterView<?> parent,
    View view,
    int position, long id) {
    Toast.makeText(this,"可以多选了",0).show();
    //设置ListView的选择模式为多选模式
    ((ListView)parent).
    setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
    return true;//返回为true表示事件已处理,后续无需再处理
    }
    }

    点赞 评论 复制链接分享

相关推荐