精华内容
下载资源
问答
  • Android怎么获取ListView的值

    千次阅读 2015-09-03 23:00:10
    Android怎么获取ListView的值今天在学习ListView的时候 想点击ListView一个Item的时候 却无法获取它的值 现在解决了 分享记录一下FruitAdapter.javapublic View getView(int position, View convertView, ViewGroup...

    Android怎么获取ListView的值

    今天在学习ListView的时候 想点击ListView一个Item的时候 却无法获取它的值
    现在解决了 分享记录一下

    这里写图片描述


    FruitAdapter.java

    public View getView(int position, View convertView, ViewGroup parent) {
        Fruit fruit = getItem(position); // 获得Fruit实例
        View view = LayoutInflater.from(getContext()).inflate(resourceId, null); // 获取View
                                                                                    // 实例
    
        ImageView imageView = (ImageView) view.findViewById(R.id.image_view);
        TextView textView = (TextView) view.findViewById(R.id.text_view);
    
        imageView.setImageResource(fruit.getImageId());
        textView.setText(fruit.getName());
        **view.setTag(fruit.getName());**  //设置setTag把所需要的值传入
    
        return view;
    }

    MainActivity.java

    ListView view = (ListView)findViewById(R.id.list_view); //获取
    
    //获取点击事件
    view.setOnItemClickListener(new OnItemClickListener() {
    
        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
            String s = view.getTag().toString(); //获取值
            Toast.makeText(MainActivity.this, s, Toast.LENGTH_SHORT).show();//弹出提示
        }
    
    });

    效果如下图:

    这里写图片描述


    2015年9月3日22:59:53

    展开全文
  • lngCols = SendMessage(lngHeaderHwnd, HDM_GETITEMCOUNT, 0, 0) '获取ListView表头项目数 Debug.Print("总列数是:" & lngCols) Else lngCols = 1 End If GetWindowThreadProcessId(lngHwnd, lngPId) '获取...
    Public Class Form1
        Public Const LVM_FIRST As Short = &H1000S
        Public Const LVM_GETITEMCOUNT As Integer = (LVM_FIRST + 4)
        Public Const LVM_GETITEM As Integer = (LVM_FIRST + 5)
        Public Const LVM_GETSTRINGWIDTH As Integer = (LVM_FIRST + 17)
        Public Const LVM_GETCOLUMN As Integer = (LVM_FIRST + 25)
        Public Const LVM_GETITEMTEXT As Integer = (LVM_FIRST + 45)
        Public Const LVM_GETHEADER As Integer = LVM_FIRST + 31
        Public Const WC_HEADERA As String = "SysHeader32"
        Public Const WC_HEADER As String = WC_HEADERA
        Public Const HDM_FIRST As Short = &H1200S '// Header messages
        Public Const HDM_GETITEMCOUNT As Integer = (HDM_FIRST + 0)
        Public Const HDM_ORDERTOINDEX As Integer = (HDM_FIRST + 15)
        Public Const PROCESS_QUERY_INFORMATION As Short = 1024
        Public Const PROCESS_VM_OPERATION As Short = &H8S
        Public Const PROCESS_VM_READ As Short = &H10S
        Public Const PROCESS_VM_WRITE As Short = &H20S
        Public Const STANDARD_RIGHTS_REQUIRED As Integer = &HF0000
        Public Const MAX_LVMSTRING As Integer = 255 '可根椐读取数据长度设置适当的数值
        Public Const MEM_COMMIT As Short = &H1000S
        Public Const MEM_RELEASE As Short = &H8000S
        Public Const PAGE_READWRITE As Short = &H4S
        Public Const LVIF_TEXT As Integer = &H1S
        Public Structure LV_ITEMA
            Dim mask As Integer
            Dim iItem As Integer
            Dim iSubItem As Integer
            Dim state As Integer
            Dim stateMask As Integer
            Dim pszText As Integer
            Dim cchTextMax As Integer
            Dim iImage As Integer
            Dim lParam As Integer
            Dim iIndent As Integer
        End Structure
    
        Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Integer, ByVal bInheritHandle As Integer, ByVal dwProcId As Integer) As Integer
        Private Declare Function VirtualAllocEx Lib "kernel32" (ByVal hProcess As Integer, ByVal lpAddress As Integer, ByVal dwSize As Integer, ByVal flAllocationType As Integer, ByVal flProtect As Integer) As Integer
        Private Declare Function VirtualFreeEx Lib "kernel32" (ByVal hProcess As Integer, ByVal lpAddress As Integer, ByVal dwSize As Integer, ByVal dwFreeType As Integer) As Integer
    
    
        Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As LV_ITEMA, ByVal nSize As Integer, ByVal lpNumberOfBytesWritten As Integer) As Integer
    
        Private Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Integer, ByVal lpBaseAddress As Object, ByRef lpBuffer As Object, ByVal nSize As Integer, ByVal lpNumberOfBytesWritten As Integer) As Integer
    
    
        Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
    
    
    
    
        Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Integer) As Integer
        Private Declare Function GetCurrentProcessId Lib "kernel32" () As Integer
        Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer
        Public Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Integer, ByVal hWnd2 As Integer, ByVal lpsz1 As String, ByVal lpsz2 As String) As Integer
        Public Declare Function GetWindowThreadProcessId Lib "user32" Alias "GetWindowThreadProcessId" (ByVal hwnd As Integer, ByRef lpdwProcessId As Integer) As Integer
    
       
    
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim lngHwnd As Integer
            Dim lngHwnd0 As Integer
            Dim lngHwnd1 As Integer
            Dim lngHeaderHwnd As Integer
            Dim lngPId As Integer
            Dim lngRows As Integer
            Dim lngCols As Integer
            Dim lngRow As Integer
            Dim lngCol As Integer
            Dim strItem As String
    
            lngHwnd = FindWindow("#32770", "Windows 任务管理器")
            lngHwnd0 = FindWindowEx(lngHwnd, 0, "#32770", "Applications") '获取任务管理器窗口句柄
    
            lngHwnd1 = FindWindowEx(lngHwnd0, 0, "SysListView32", "任务") '获取进程列表框句柄
    
            'lngHwnd0 = FindWindowEx(lngHwnd, 0, "WTWindow", "巅峰批量卡iPhone新版 V1.8")
            'lngHwnd1 = FindWindowEx(lngHwnd0, 0, "SysListView32", "")
            '第二个参数是 LVM_GETHEADER,获得LISTVIEW的HEADER句柄
            lngHeaderHwnd = SendMessage(lngHwnd1, LVM_GETHEADER, 0, 0)
    
            lngRows = SendMessage(lngHwnd1, LVM_GETITEMCOUNT, 0, 0) '获取ListView项目数
            Debug.Print("总行数是:" & lngRows)
    
            If lngHeaderHwnd > 0 Then
                lngCols = SendMessage(lngHeaderHwnd, HDM_GETITEMCOUNT, 0, 0) '获取ListView表头项目数
                Debug.Print("总列数是:" & lngCols)
    
            Else
                lngCols = 1
            End If
    
            GetWindowThreadProcessId(lngHwnd, lngPId) '获取与指定窗口关联在一起的一个进程和线程标识符ID
    
            Dim count As Integer
    
    
    
            Dim strBuffer() As Byte, pHandle As Integer, myItem() As LV_ITEMA, i As Integer, j As Integer
            Dim pStrBufferMemory As Integer, pMyItemMemory As Integer, result As Integer, tmpString As String
            Dim strLength As Integer
    
    
    
            ReDim strBuffer(MAX_LVMSTRING)
    
            pHandle = OpenProcess(PROCESS_VM_OPERATION Or PROCESS_VM_READ Or PROCESS_VM_WRITE, False, lngPId)
    
            ReDim myItem(lngCols)
    
    
    
            For i = 0 To lngRows - 1
                For j = 0 To lngCols
                    pStrBufferMemory = VirtualAllocEx(pHandle, 0, MAX_LVMSTRING, MEM_COMMIT, PAGE_READWRITE)
                    myItem(j).mask = LVIF_TEXT
                    myItem(j).iSubItem = j
                    myItem(j).pszText = pStrBufferMemory
                    myItem(j).cchTextMax = MAX_LVMSTRING
                    pMyItemMemory = VirtualAllocEx(pHandle, 0, Len(myItem(j)), MEM_COMMIT, PAGE_READWRITE)
                    result = WriteProcessMemory(pHandle, pMyItemMemory, myItem(j), Len(myItem(j)), 0&)
    
                    strLength = SendMessage(lngHwnd1, LVM_GETITEMTEXT, i, pMyItemMemory)
                    If result = 0 Then
                        result = VirtualFreeEx(pHandle, pStrBufferMemory, 0, MEM_RELEASE)
                        result = VirtualFreeEx(pHandle, pMyItemMemory, 0, MEM_RELEASE)
                        Exit For
                    End If
                    result = ReadProcessMemory(pHandle, pStrBufferMemory, strBuffer(0), MAX_LVMSTRING, 0)
                    result = ReadProcessMemory(pHandle, pMyItemMemory, myItem(j), Len(myItem(j)), 0)
                    tmpString = StrConv(System.Text.Encoding.Default.GetString(strBuffer), 0)
                  
                    result = VirtualFreeEx(pHandle, pStrBufferMemory, 0, MEM_RELEASE)
                    result = VirtualFreeEx(pHandle, pMyItemMemory, 0, MEM_RELEASE)
     
                Next
    
    
                
            Next
    
            result = CloseHandle(pHandle)
      
        End Sub
    
    
     
    
    
    
    
    
    
        
    End Class
    

      

    转载于:https://www.cnblogs.com/xiaoliao/p/10030390.html

    展开全文
  • 获取listview checkbox选择的值 android

    千次阅读 2017-06-14 08:58:24
    android 获取listview checkbox选择的值 Android 的listview 内部item的布局包含checkbox控件时,会遇到常见的问题:1.checkbox无法选择;2.选择的checkbox后滑动listview内容时会checkbox选择的值会刷新...

    android 获取listview checkbox选择的值


    Android 的listview 内部item的布局包含checkbox控件时,会遇到常见的问题:1.checkbox无法选择;2.选择的checkbox后滑动listview内容时会checkbox选择的值会刷新成原来状态值(即没选中);3.选择listview所有checkbox值之后,只能获取当前可见的checkbox的值,向后滑动选择的值无法获取。

    解决以上问题可以采取以下方法:

    1.设置checkbox的属性值为:android:focusable=”false” ,防止焦点独占,解决checkbox无法选择的问题。

    2.重写Adapter,重写getView方法;

    3.重写Adapter的getView方法时,为每个checkbox添加事件响应并记录选择状态,通过获取获取状态记录值获取所有选择的checkbox值。

    需要注意的是第三点,在重写getView方法时,不要判断convertView == null,如果判断convertView == null再实例化相关的控件,则刷新的是局部控件(这个尚需要观点有待论证)。

    以下的程序代码就是围绕以上三点编写的例子。

    图-1 获取listview checkbox 所有选择的值

    ListView_CheckBoxActivity.Java实现界面及其事件功能,通过点击Button按钮获取选择的checkbox值,并在Toast控件中显示,如图-1。

    1. ListView_CheckBoxActivity.java

    1. package com.checkbox.main;  
    2.   
    3. import java.util.ArrayList;  
    4. import java.util.HashMap;  
    5. import android.app.Activity;  
    6. import android.os.Bundle;  
    7. import android.view.View;  
    8. import android.view.View.OnClickListener;  
    9. import android.widget.Button;  
    10. import android.widget.ListView;  
    11. import android.widget.Toast;  
    12.   
    13. public class ListView_CheckBoxActivity extends Activity {  
    14. //适配器  
    15. CheckboxAdapter listItemAdapter;  
    16. /** Called when the activity is first created. */  
    17. @Override  
    18. public void onCreate(Bundle savedInstanceState) {  
    19. super.onCreate(savedInstanceState);  
    20. setContentView(R.layout.main);  
    21. //按钮及事件响应  
    22. Button getValue=(Button)findViewById(R.id.get_value);  
    23. getValue.setOnClickListener(listener);  
    24. //listview  
    25. ListView list = (ListView) findViewById(R.id.list);  
    26. //存储数据的数组列表  
    27. ArrayList<HashMap<String, Object>> listData=new ArrayList<HashMap<String,Object>>();  
    28. String []name={"William","Charles","Linng","Json","Bob","Carli","William","Charles","Linng",  
    29. "Json","Bob","Carli"};  
    30. String []id={"1","2","3","4","5","6","7","8","9","10","11","12"};  
    31. for(int i=0;i<12;i++){  
    32. HashMap<String, Object> map=new HashMap<String, Object>();  
    33. map.put("friend_image", R.drawable.icon);  
    34. map.put("friend_username", name[i]);  
    35. map.put("friend_id", id[i]);  
    36. map.put("selected"false);  
    37. //添加数据  
    38. listData.add(map);  
    39. }  
    40. //适配器  
    41. listItemAdapter = new CheckboxAdapter(this, listData);  
    42. list.setAdapter(listItemAdapter);  
    43. }  
    44. //事件响应  
    45. OnClickListener listener=new OnClickListener() {  
    46. @Override  
    47. public void onClick(View v) {  
    48. // TODO Auto-generated method stub  
    49. HashMap<Integer, Boolean> state =listItemAdapter.state;  
    50. String options="选择的项是:";  
    51. for(int j=0;j<listItemAdapter.getCount();j++){  
    52. System.out.println("state.get("+j+")=="+state.get(j));  
    53. if(state.get(j)!=null){  
    54. @SuppressWarnings("unchecked")  
    55. HashMap<String, Object> map=(HashMap<String, Object>) listItemAdapter.getItem(j);  
    56. String username=map.get("friend_username").toString();  
    57. String id=map.get("friend_id").toString();  
    58. options+="\n"+id+"."+username;  
    59. }  
    60. }  
    61. //显示选择内容  
    62. Toast.makeText(getApplicationContext(), options, Toast.LENGTH_LONG).show();  
    63. }  
    64. };  
    65. }  

    CheckboxAdapter 继承BaseAdapter并重写相关函数,重写getView时,为每个checkbox添加事件响应并通过HashMap记录选择状态,以便获取相应的checkbox值。

    2.CheckboxAdapter .java

    1. package com.checkbox.main;  
    2.   
    3. import java.util.ArrayList;  
    4. import java.util.HashMap;  
    5. import android.content.Context;  
    6. import android.view.LayoutInflater;  
    7. import android.view.View;  
    8. import android.view.ViewGroup;  
    9. import android.widget.BaseAdapter;  
    10. import android.widget.CheckBox;  
    11. import android.widget.CompoundButton;  
    12. import android.widget.CompoundButton.OnCheckedChangeListener;  
    13. import android.widget.ImageView;  
    14. import android.widget.TextView;  
    15.   
    16. public class CheckboxAdapter extends BaseAdapter {  
    17.   
    18. Context context;  
    19. ArrayList<HashMap<String, Object>> listData;  
    20. //记录checkbox的状态  
    21. HashMap<Integer, Boolean> state = new HashMap<Integer, Boolean>();  
    22.   
    23. //构造函数  
    24. public CheckboxAdapter(Context context,ArrayList<HashMap<String,Object>> listData) {  
    25. this.context = context;  
    26. this.listData = listData;  
    27. }  
    28.   
    29. @Override  
    30. public int getCount() {  
    31. // TODO Auto-generated method stub  
    32. return listData.size();  
    33. }  
    34.   
    35. @Override  
    36. public Object getItem(int position) {  
    37. // TODO Auto-generated method stub  
    38. return listData.get(position);  
    39. }  
    40.   
    41. @Override  
    42. public long getItemId(int position) {  
    43. // TODO Auto-generated method stub  
    44. return position;  
    45. }  
    46.   
    47. // 重写View  
    48. @Override  
    49. public View getView(final int position, View convertView, ViewGroup parent) {  
    50. // TODO Auto-generated method stub  
    51.   
    52. LayoutInflater mInflater = LayoutInflater.from(context);  
    53. convertView = mInflater.inflate(R.layout.item, null);  
    54. ImageView image = (ImageView) convertView.findViewById(R.id.friend_image);  
    55. image.setBackgroundResource((Integer) listData.get(position).get("friend_image"));  
    56. TextView username = (TextView) convertView.findViewById(R.id.friend_username);  
    57. username.setText((String) listData.get(position).get("friend_username"));  
    58. TextView id = (TextView) convertView.findViewById(R.id.friend_id);  
    59. id.setText((String) listData.get(position).get("friend_id"));  
    60. CheckBox check = (CheckBox) convertView.findViewById(R.id.selected);  
    61. check.setOnCheckedChangeListener(new OnCheckedChangeListener() {  
    62. @Override  
    63. public void onCheckedChanged(CompoundButton buttonView,  
    64. boolean isChecked) {  
    65. // TODO Auto-generated method stub  
    66. if (isChecked) {  
    67. state.put(position, isChecked);  
    68. else {  
    69. state.remove(position);  
    70. }  
    71. }  
    72. });  
    73. check.setChecked((state.get(position) == null ? false : true));  
    74. return convertView;  
    75. }  
    76. }  

    加载的布局文件

    3.main.xml

    1. <?xml version="1.0" encoding="utf-8"?>  
    2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    3. android:orientation="vertical"  
    4. android:layout_width="fill_parent"  
    5. android:layout_height="fill_parent"   >  
    6. <Button android:id="@+id/get_value"  
    7. android:layout_width="fill_parent"  
    8. android:layout_height="wrap_content"  
    9. android:text="获取Checkbox值" />  
    10. <ListView android:id="@+id/list"  
    11. android:layout_width="fill_parent"  
    12. android:layout_height="wrap_content" />  
    13. </LinearLayout>  

    listview item内部的布局文件

    4.item.xml

    1. <?xml version="1.0" encoding="utf-8"?>  
    2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    3. android:id="@+id/RelativeLayout"  
    4. android:layout_width="fill_parent"  
    5. android:layout_height="wrap_content"  
    6. android:paddingBottom="4dip"  
    7. android:paddingRight="12dip" >  
    8. <ImageView android:id="@+id/friend_image"  
    9. android:layout_width="wrap_content"  
    10. android:layout_height="wrap_content"  
    11. android:paddingTop="6dip"  
    12. android:paddingLeft="2dip"  
    13. android:layout_centerVertical="true"  
    14. android:layout_alignParentLeft="true" />  
    15. <TextView android:id="@+id/friend_username"  
    16. android:layout_width="fill_parent"  
    17. android:layout_height="wrap_content"  
    18. android:textSize="18dip"  
    19. android:textColor="#ccc"  
    20. android:paddingTop="6dip"  
    21. android:paddingRight="2dip"  
    22. android:layout_toRightOf="@id/friend_image"    />  
    23. <TextView android:id="@+id/friend_id"  
    24. android:layout_width="fill_parent"  
    25. android:layout_height="wrap_content"  
    26. android:layout_below="@+id/friend_username"  
    27. android:layout_marginRight="36dip"  
    28. android:paddingRight="2dip"  
    29. android:layout_toRightOf="@id/friend_image"  
    30. android:textColor="#fff"  
    31. android:maxLines="2" />  
    32. <CheckBox android:id="@+id/selected"  
    33. android:layout_width="wrap_content"  
    34. android:layout_height="wrap_content"  
    35. android:layout_marginLeft="36dip"  
    36. android:layout_centerVertical="true"  
    37. android:layout_alignParentRight="true"  
    38. android:focusable="false"  />  
    39. </RelativeLayout>  
    展开全文
  • android 获取listview checkbox选择的值

    万次阅读 2015-04-16 10:54:02
    android 获取listview checkbox选择的值 android 的listview 内部item的布局包含checkbox控件时,会遇到常见的问题:1.checkbox无法选择;2.选择的checkbox后滑动listview内容时会checkbox选择的值会刷新...


    android 获取listview checkbox选择的值


    android 的listview 内部item的布局包含checkbox控件时,会遇到常见的问题:1.checkbox无法选择;2.选择的checkbox后滑动listview内容时会checkbox选择的值会刷新成原来状态值(即没选中);3.选择listview所有checkbox值之后,只能获取当前可见的checkbox的值,向后滑动选择的值无法获取。

    解决以上问题可以采取以下方法:

    1.设置checkbox的属性值为:android:focusable=”false” ,防止焦点独占,解决checkbox无法选择的问题。

    2.重写Adapter,重写getView方法;

    3.重写Adapter的getView方法时,为每个checkbox添加事件响应并记录选择状态,通过获取获取状态记录值获取所有选择的checkbox值。

    需要注意的是第三点,在重写getView方法时,不要判断convertView == null,如果判断convertView == null再实例化相关的控件,则刷新的是局部控件(这个尚需要观点有待论证)。

    以下的程序代码就是围绕以上三点编写的例子。

    图-1 获取listview checkbox 所有选择的值

    ListView_CheckBoxActivity.java实现界面及其事件功能,通过点击Button按钮获取选择的checkbox值,并在Toast控件中显示,如图-1。

    1. ListView_CheckBoxActivity.java

    1. package com.checkbox.main;  
    2.   
    3. import java.util.ArrayList;  
    4. import java.util.HashMap;  
    5. import android.app.Activity;  
    6. import android.os.Bundle;  
    7. import android.view.View;  
    8. import android.view.View.OnClickListener;  
    9. import android.widget.Button;  
    10. import android.widget.ListView;  
    11. import android.widget.Toast;  
    12.   
    13. public class ListView_CheckBoxActivity extends Activity {  
    14. //适配器  
    15. CheckboxAdapter listItemAdapter;  
    16. /** Called when the activity is first created. */  
    17. @Override  
    18. public void onCreate(Bundle savedInstanceState) {  
    19. super.onCreate(savedInstanceState);  
    20. setContentView(R.layout.main);  
    21. //按钮及事件响应  
    22. Button getValue=(Button)findViewById(R.id.get_value);  
    23. getValue.setOnClickListener(listener);  
    24. //listview  
    25. ListView list = (ListView) findViewById(R.id.list);  
    26. //存储数据的数组列表  
    27. ArrayList<HashMap<String, Object>> listData=new ArrayList<HashMap<String,Object>>();  
    28. String []name={"William","Charles","Linng","Json","Bob","Carli","William","Charles","Linng",  
    29. "Json","Bob","Carli"};  
    30. String []id={"1","2","3","4","5","6","7","8","9","10","11","12"};  
    31. for(int i=0;i<12;i++){  
    32. HashMap<String, Object> map=new HashMap<String, Object>();  
    33. map.put("friend_image", R.drawable.icon);  
    34. map.put("friend_username", name[i]);  
    35. map.put("friend_id", id[i]);  
    36. map.put("selected"false);  
    37. //添加数据  
    38. listData.add(map);  
    39. }  
    40. //适配器  
    41. listItemAdapter = new CheckboxAdapter(this, listData);  
    42. list.setAdapter(listItemAdapter);  
    43. }  
    44. //事件响应  
    45. OnClickListener listener=new OnClickListener() {  
    46. @Override  
    47. public void onClick(View v) {  
    48. // TODO Auto-generated method stub  
    49. HashMap<Integer, Boolean> state =listItemAdapter.state;  
    50. String options="选择的项是:";  
    51. for(int j=0;j<listItemAdapter.getCount();j++){  
    52. System.out.println("state.get("+j+")=="+state.get(j));  
    53. if(state.get(j)!=null){  
    54. @SuppressWarnings("unchecked")  
    55. HashMap<String, Object> map=(HashMap<String, Object>) listItemAdapter.getItem(j);  
    56. String username=map.get("friend_username").toString();  
    57. String id=map.get("friend_id").toString();  
    58. options+="\n"+id+"."+username;  
    59. }  
    60. }  
    61. //显示选择内容  
    62. Toast.makeText(getApplicationContext(), options, Toast.LENGTH_LONG).show();  
    63. }  
    64. };  
    65. }  

    CheckboxAdapter 继承BaseAdapter并重写相关函数,重写getView时,为每个checkbox添加事件响应并通过HashMap记录选择状态,以便获取相应的checkbox值。

    2.CheckboxAdapter .java

    1. package com.checkbox.main;  
    2.   
    3. import java.util.ArrayList;  
    4. import java.util.HashMap;  
    5. import android.content.Context;  
    6. import android.view.LayoutInflater;  
    7. import android.view.View;  
    8. import android.view.ViewGroup;  
    9. import android.widget.BaseAdapter;  
    10. import android.widget.CheckBox;  
    11. import android.widget.CompoundButton;  
    12. import android.widget.CompoundButton.OnCheckedChangeListener;  
    13. import android.widget.ImageView;  
    14. import android.widget.TextView;  
    15.   
    16. public class CheckboxAdapter extends BaseAdapter {  
    17.   
    18. Context context;  
    19. ArrayList<HashMap<String, Object>> listData;  
    20. //记录checkbox的状态  
    21. HashMap<Integer, Boolean> state = new HashMap<Integer, Boolean>();  
    22.   
    23. //构造函数  
    24. public CheckboxAdapter(Context context,ArrayList<HashMap<String,Object>> listData) {  
    25. this.context = context;  
    26. this.listData = listData;  
    27. }  
    28.   
    29. @Override  
    30. public int getCount() {  
    31. // TODO Auto-generated method stub  
    32. return listData.size();  
    33. }  
    34.   
    35. @Override  
    36. public Object getItem(int position) {  
    37. // TODO Auto-generated method stub  
    38. return listData.get(position);  
    39. }  
    40.   
    41. @Override  
    42. public long getItemId(int position) {  
    43. // TODO Auto-generated method stub  
    44. return position;  
    45. }  
    46.   
    47. // 重写View  
    48. @Override  
    49. public View getView(final int position, View convertView, ViewGroup parent) {  
    50. // TODO Auto-generated method stub  
    51.   
    52. LayoutInflater mInflater = LayoutInflater.from(context);  
    53. convertView = mInflater.inflate(R.layout.item, null);  
    54. ImageView image = (ImageView) convertView.findViewById(R.id.friend_image);  
    55. image.setBackgroundResource((Integer) listData.get(position).get("friend_image"));  
    56. TextView username = (TextView) convertView.findViewById(R.id.friend_username);  
    57. username.setText((String) listData.get(position).get("friend_username"));  
    58. TextView id = (TextView) convertView.findViewById(R.id.friend_id);  
    59. id.setText((String) listData.get(position).get("friend_id"));  
    60. CheckBox check = (CheckBox) convertView.findViewById(R.id.selected);  
    61. check.setOnCheckedChangeListener(new OnCheckedChangeListener() {  
    62. @Override  
    63. public void onCheckedChanged(CompoundButton buttonView,  
    64. boolean isChecked) {  
    65. // TODO Auto-generated method stub  
    66. if (isChecked) {  
    67. state.put(position, isChecked);  
    68. else {  
    69. state.remove(position);  
    70. }  
    71. }  
    72. });  
    73. check.setChecked((state.get(position) == null ? false : true));  
    74. return convertView;  
    75. }  
    76. }  

    加载的布局文件

    3.main.xml

    1. <?xml version="1.0" encoding="utf-8"?>  
    2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    3. android:orientation="vertical"  
    4. android:layout_width="fill_parent"  
    5. android:layout_height="fill_parent"   >  
    6. <Button android:id="@+id/get_value"  
    7. android:layout_width="fill_parent"  
    8. android:layout_height="wrap_content"  
    9. android:text="获取Checkbox值" />  
    10. <ListView android:id="@+id/list"  
    11. android:layout_width="fill_parent"  
    12. android:layout_height="wrap_content" />  
    13. </LinearLayout>  

    listview item内部的布局文件

    4.item.xml

    1. <?xml version="1.0" encoding="utf-8"?>  
    2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    3. android:id="@+id/RelativeLayout"  
    4. android:layout_width="fill_parent"  
    5. android:layout_height="wrap_content"  
    6. android:paddingBottom="4dip"  
    7. android:paddingRight="12dip" >  
    8. <ImageView android:id="@+id/friend_image"  
    9. android:layout_width="wrap_content"  
    10. android:layout_height="wrap_content"  
    11. android:paddingTop="6dip"  
    12. android:paddingLeft="2dip"  
    13. android:layout_centerVertical="true"  
    14. android:layout_alignParentLeft="true" />  
    15. <TextView android:id="@+id/friend_username"  
    16. android:layout_width="fill_parent"  
    17. android:layout_height="wrap_content"  
    18. android:textSize="18dip"  
    19. android:textColor="#ccc"  
    20. android:paddingTop="6dip"  
    21. android:paddingRight="2dip"  
    22. android:layout_toRightOf="@id/friend_image"    />  
    23. <TextView android:id="@+id/friend_id"  
    24. android:layout_width="fill_parent"  
    25. android:layout_height="wrap_content"  
    26. android:layout_below="@+id/friend_username"  
    27. android:layout_marginRight="36dip"  
    28. android:paddingRight="2dip"  
    29. android:layout_toRightOf="@id/friend_image"  
    30. android:textColor="#fff"  
    31. android:maxLines="2" />  
    32. <CheckBox android:id="@+id/selected"  
    33. android:layout_width="wrap_content"  
    34. android:layout_height="wrap_content"  
    35. android:layout_marginLeft="36dip"  
    36. android:layout_centerVertical="true"  
    37. android:layout_alignParentRight="true"  
    38. android:focusable="false"  />  
    39. </RelativeLayout>  

    源码下载:ListView_CheckBox.zip


    展开全文
  • 动态增加listview添加多项item,最后获取用户输入的多项item中的值存放在集合中,非常适合新手们,通过这个demo你还能够学到很多开发中的技术(比如xUtil框架、知道要使用AppUtils来规范自己写的代码,从而提高代码的...
  • NULL 博文链接:https://hu555u.iteye.com/blog/1969678
  • 项目需求要根据滚动位置,对title实现渐隐渐现效果,因此想获取ListView滚动时精确位置。最终找一种方法特此分享给大家。
  •  view为item监听器中View view String textView = (String) ((TextView) view).getText(); Toast.makeText(MainActivity.this, textView, Toast.LENGTH_SHORT).show();   转载...
  • Android ListView的Item中含有EditText 获取EditText里面的值并且刷新ListView值
  • 怎样将ListView在Editext中输入的值刷新到界面上
  • for (int i = 0; i < listView1.Items.Count; i++) { bool issel = listView1.Items[i].Checked; if (issel) { string value = listView1.Items[i].Text; ...
  • 因为直接通过方法动态获取各项值的方法目前没有找到!!!(网上很多方法是不行),可以通过其他手段获取。原理:比如,listview绑定是一个adapter适配器。第一种方法:可以在适配器里添加一个数组或集合之类...
  • 文章开始之前,请大家思考这样一个问题 ListView的每条Item中多个Edittext如何获取输入?且防止数据错乱? 如果是你你会怎么做?如果你有更好的思路欢迎你留言,谢谢 先给老铁们上一张动态图 这里我偷了一个...
  • 动态获取ListView中EditText中输入的值

    热门讨论 2014-02-27 10:30:36
    ListView中item中editext中输入数据,可以动态取得
  • 当我们要求listview一往上滚动时候,下面tab栏或者别在下面浮空东西,或者上面ActionBar也是可以要求往上滚动(例如google plus),这个时候我们需要精确的ListView 滚动,而不某个Item往上滚动了,毕竟是...
  •  http://www.webplusandroid.com/creating-listview-with-edittext-and-textwatcher-in-android/
  • 主要介绍了django ListView的使用 ListView中获取url中的参数方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 最近要实现从数据库读数据,该数据对应listview的item布局里面的RadioButton,并且item布局里面还有EditText的控件。 如何将每一条对应的listview对应值获取出来呢? 实现原理是在作为ArrayAdapter的参数的数据...
  • 首先必须要判断listView1.SelectedItems.Count>0或是listview1.SelectedIndices.Count>0,否则第一次点击会选不中。其次,好像itemSelectionChanged或者SelectedIndexChanged事件都可以触发。 private void ...
  • 这段代码是写在listview_MouseUp事件中 private void listView1_MouseUp(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { WizardBase.IntermediateStep inter = (wizardC...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 512
精华内容 204
关键字:

获取listview的值