zoukankan      html  css  js  c++  java
  • Android_listView_Listener

    layout.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"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context=".MainActivity" >
    
        <ListView
            android:id="@+id/listview"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/hello_world" />
     
    
    </RelativeLayout>

    main.java

    package com.example.day08_listview_listener;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.util.Log;
    import android.view.Menu;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.AdapterView;
    import android.widget.AdapterView.OnItemClickListener;
    import android.widget.AdapterView.OnItemLongClickListener;
    import android.widget.BaseAdapter;
    import android.widget.ListView;
    import android.widget.TextView;
    
    public class MainActivity extends Activity {
    
        private ListView listView;
        public static String[] citys = {"长沙","上海","深圳","广州","北京","广东","杭州","北京","天津","嘉兴","永州","衡阳","西安"};
        private List<String> list;
        private Myadapter adapter;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //实例化控件
            listView = (ListView) findViewById(R.id.listview);
            list = new ArrayList<String>();
            for (int i = 0; i < citys.length; i++) {
                list.add(citys[i]);
            }
            adapter = new Myadapter();
            //设置适配器
            listView.setAdapter(adapter);
            //设置item点击事件
            listView.setOnItemClickListener(new OnItemClickListener() {
                /**
                 * 当点击适配器控件的item的时候调用
                 *     AdapterView<?> parent,表示的是设置该适配器的适配器控件
                 *  View view,表示的是被点击的item的view
                 *  int position, 表示的是与被点击item的view的索引
                 *  long id 表示id,该值与getItemId的返回值对应
                 */
                @Override
                public void onItemClick(AdapterView<?> parent, View view,
                        int position, long id) {
                    Log.i("MainActivity", "MainActivity--onItemClick--position"+position);
                }
            });
            //设置长按事件
            listView.setOnItemLongClickListener(new OnItemLongClickListener() {
                /**
                 * 问题:当用户点击item的时间超过2s就会触发长按事件,如果同时设置了单击事件,会先触发长按,松开手时触发单击事件]
                 * 返回值     false
                 * 表示该方法不处理该事件(不消耗该事件),事件会交给其他的方法去处理
                 *     返回值   true
                 * 表示该方法消耗了该事件,该事件就不会交给其他的方法去调用
                 */
                @Override
                public boolean onItemLongClick(AdapterView<?> parent, View view,
                        int position, long id) {
                    //获取数据
                    String dataArray = citys[position];//方法一
                    String dataArray1 = (String) listView.getItemAtPosition(position);//方法二
                    String dataArray2 = (String) adapter.getItem(position) ;//方法三
                    String dataArray4 = (String) parent.getItemAtPosition(position);
                    Log.i("MainActivity", "MainActivity--onItemLongClick--position"+position);
                    return true;
                }
            });
            
            
        }
    class Myadapter extends BaseAdapter{
    
        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return list.size();
        }
    
        @Override
        public Object getItem(int position) {
            // TODO Auto-generated method stub
            return list.get(position);
        }
    
        @Override
        public long getItemId(int position) {
            // TODO Auto-generated method stub
            return position;
        }
        3.实现getview
    //             1.编写复杂样式的item布局
    //             2.将xml文件转换成view
    //             3.找到view中的控件
    //             4.给控件设置值
    //             5.返回view
                
                //第一种--获得布局加载器
                /*LayoutInflater layoutInflater   = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                View view = layoutInflater.inflate(R.layout.listview_item_city, null);*/
                //第二种
                /*LayoutInflater layoutInflater2 = LayoutInflater.from(MainActivity.this);
                View view = layoutInflater2.inflate(R.layout.listview_item_city, null);*/
                //第三种
    //            LayoutInflater layoutInflater = MainActivity.this.getLayoutInflater();
    //            View view = layoutInflater2.inflate(R.layout.listview_item_city, null);
                //第四种
                View view = View.inflate(MainActivity.this, R.layout.listview_item_city, null);
    
    
    
    
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            //    创建一个TextView 对象,设置参数并返回view
            TextView textView = new TextView(MainActivity.this);
            textView.setText(list.get(position));
            textView.setTextSize(30);
            return textView;
        }
        
    }
    
    }

     

  • 相关阅读:
    Temporal Action Detection with Structured Segment Networks (ssn)【转】
    ubuntu多版本cuda并存与切换【两个博客链接】
    TURN TAP: Temporal Unit Regression Network for Temporal Action Proposals(ICCV2017)
    CTAP: Complementary Temporal Action Proposal Generation (ECCV2018)
    很实用的HTML5+CSS3注册登录窗体切换效果
    基于js的网页换肤(不需要刷新整个页面,只需替换css文件)
    CSS重置 reset.css
    CSS3制作分步注册表单
    CSS3 3D立体柜子实现
    创建 CSS3 下拉菜单
  • 原文地址:https://www.cnblogs.com/fangg/p/5734693.html
Copyright © 2011-2022 走看看