zoukankan      html  css  js  c++  java
  • ListView中pointToPosition()方法使用具体演示样例

    MainActivity例如以下:

    package cc.testpointtoposition;
    
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    
    import android.os.Bundle;
    import android.view.MotionEvent;
    import android.view.View;
    import android.view.View.OnTouchListener;
    import android.widget.ListView;
    import android.widget.SimpleAdapter;
    import android.app.Activity;
    /**
     * Demo描写叙述:
     * ListView中pointToPosition()方法使用演示样例.
     * 根据触摸点的坐标计算出点击的是ListView的哪个Item
     * 
     * 參考资料:
     * http://blog.csdn.net/guolin_blog/article/details/17357967
     * Thank you very much
     */
    public class MainActivity extends Activity {
        private ListView mListView;
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.main);
    		init();
    		listenListViewTouch();
    	}
    	
    	private void init(){
    		mListView=(ListView) findViewById(R.id.listView);
            List<HashMap<String, Object>> list=new ArrayList<HashMap<String,Object>>();
          	HashMap<String, Object> hashMap=null;
          	for (int i = 0; i < 8; i++) {
          		hashMap=new HashMap<String, Object>();
          		hashMap.put("name", "小明"+i);
              	hashMap.put("phone", "135"+i);
              	hashMap.put("amount","500"+i);
            	list.add(hashMap);
    		}
          SimpleAdapter adapter=new SimpleAdapter(this, list, R.layout.listviewitem, 
          new String []{"name","phone","amount"}, new int[]{R.id.name,R.id.phone,R.id.amount});
          mListView.setAdapter(adapter);
    	}
    	
    	private void listenListViewTouch(){
    		 mListView.setOnTouchListener(new OnTouchListener() {
    			@Override
    			public boolean onTouch(View v, MotionEvent event) {
    				int item=mListView.pointToPosition((int) event.getX(), (int) event.getY());
    				System.out.println("---> 如今点击了ListView中第"+(item+1)+"个Item");
    				return true;
    			}
    		});
    	}
    
    }
    


    main.xml例如以下:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    
        <TextView
            android:id="@+id/textView"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:text="測试ListView的pointToPosition()方法" />
    
        <ListView
            android:id="@+id/listView"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_below="@id/textView" />
    
    </RelativeLayout>

    listviewitem例如以下:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="50dip"
        android:gravity="center"
        android:orientation="horizontal" >
    
        <TextView
            android:id="@+id/name"
            android:layout_width="100dip"
            android:layout_height="wrap_content" />
    
        <TextView
            android:id="@+id/phone"
            android:layout_width="150dip"
            android:layout_height="wrap_content" />
    
        <TextView
            android:id="@+id/amount"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" />
    
    </LinearLayout>


  • 相关阅读:
    POJ 1811 Prime Test(Miller-Rabin & Pollard-rho素数测试)
    HDU 3037 Saving Beans(Lucas定理模板题)
    HDU 5029 Relief grain(离线+线段树+启发式合并)(2014 ACM/ICPC Asia Regional Guangzhou Online)
    Java进阶(二)当我们说线程安全时,到底在说什么
    UML建模一般流程
    Spring事务管理(详解+实例)
    Spring 的 BeanPostProcessor接口实现
    Spring中ApplicationContext和beanfactory区别
    使用Maven Release插件发布项目
    tair与redis比较总结
  • 原文地址:https://www.cnblogs.com/liguangsunls/p/6752411.html
Copyright © 2011-2022 走看看