亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

關于安卓listview獲得item中的控件問題

發布時間:2020-07-16 20:22:20 來源:網絡 閱讀:3303 作者:胡郎 欄目:移動開發

我的程序里面是用到了安卓的listview來顯示數據,主要用SimpleAdapter適配器,然而怎么獲取listview的item中的控件呢?就如說我這里做了一個顯示地址管理。關于安卓listview獲得item中的控件問題

而讓我苦惱的是要怎么獲取里面的刪除控件呢?

一開始我想直接取出來然后給它設置監聽器,運行奔潰了,后來想了想,也是,你的listview每個item的布局都是一樣的,我怎么知道你是點擊哪個的。

所這個還是要在listview被點擊時調用addressListView.setOnItemClickListener(),應該在這方法中去給控件添加監聽器。

這里非常有用,不就如說當你叫外賣或者網購的時候,里面有一個+、-控件。獲得控件的原理跟這個是一樣的。

接下來我跟大家分享一下:

item樣式文件:address_item.xml:

<?xml version="1.0" encoding="UTF-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:orientation="vertical" 

    >


    <RelativeLayout

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        >

         <TextView

            android:id="@+id/textView0"

            android:layout_width="20dp"

            android:layout_height="wrap_content"

            android:layout_marginLeft="15dp"

            android:layout_centerVertical="true"

            android:background="@drawable/company" />

         

         <TextView

            android:id="@+id/CompanyName"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_toRightOf="@+id/textView0"

            android:layout_marginLeft="15dp"

            android:layout_centerVertical="true"

            android:text="沃爾瑪" />


         <TextView

             android:id="@+id/delAddress"

             android:layout_width="25dp"

             android:layout_height="30dp"

             android:layout_alignParentRight="true"

             android:layout_alignParentTop="true"

             android:layout_marginRight="20dp"

             android:background="@drawable/address_delete" />

         

         

    </RelativeLayout>


    <RelativeLayout

        android:layout_width="match_parent"

        android:layout_height="wrap_content" 

        android:layout_marginTop="5dp">


        <TextView

            android:id="@+id/textView1"

            android:layout_width="20dp"

            android:layout_height="wrap_content"

            android:layout_marginLeft="15dp"

            android:layout_centerVertical="true"

            android:background="@drawable/contact_person"

             />

         <TextView

            android:id="@+id/ContactPersonName"

            android:layout_width="80dp"

            android:layout_height="wrap_content"

            android:layout_toRightOf="@+id/textView1"

            android:layout_marginLeft="15dp"

            android:layout_centerVertical="true"

            android:text="徐董" />

         

          <TextView

            android:id="@+id/textView2"

            android:layout_width="20dp"

            android:layout_height="wrap_content"

            android:layout_toRightOf="@+id/ContactPersonName"

            android:layout_marginLeft="20dp"

            android:layout_centerVertical="true"

            android:background="@drawable/phone"/>

          

           <TextView

            android:id="@+id/PhoneNumer"

            android:layout_width="100dp"

            android:layout_height="wrap_content"

            android:layout_toRightOf="@+id/textView2"

            android:layout_marginLeft="15dp"

            android:layout_centerVertical="true"

            android:text="15766228209" />

           

    </RelativeLayout>


    <RelativeLayout

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:layout_marginTop="5dp" >

           <TextView

            android:id="@+id/textView3"

            android:layout_width="20dp"

            android:layout_height="wrap_content"

            android:layout_marginLeft="15dp"

            android:layout_centerVertical="true"

            android:background="@drawable/address"

             />

         <TextView

            android:id="@+id/AddressDetail"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_toRightOf="@+id/textView3"

            android:layout_marginLeft="15dp"

            android:layout_centerVertical="true"

            android:text="廣東省湛江市國際大廈" />

    </RelativeLayout>


    <LinearLayout

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:orientation="vertical" >


        <ImageView

            android:id="@+id/p_w_picpathView1"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:src="@drawable/dv" />


    </LinearLayout>


</LinearLayout>


listview布局文件:addressmanage.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:orientation="vertical" 

    android:background="@drawable/bg">


    <RelativeLayout

        android:id="@+id/title"

        android:layout_width="fill_parent"

        android:layout_height="50dp"

        android:background="@drawable/bg_navigation" >


        <TextView

            android:id="@+id/textView1"

            android:layout_width="fill_parent"

            android:layout_height="fill_parent"

            android:layout_centerVertical="true"

            android:layout_marginLeft="5dip"

            android:gravity="center"

            android:text="地址管理"

            android:textSize="20dip" />


        <LinearLayout

            android:id="@+id/AddressBack"

            android:layout_width="80dp"

            android:layout_height="50dp"

            android:layout_alignLeft="@+id/textView1"

            android:layout_alignParentBottom="true"

            android:layout_alignParentTop="true" >


            <TextView

            android:layout_width="20dp"

            android:layout_height="30dp"

            android:layout_alignParentLeft="true"

            android:layout_centerVertical="true"

            android:layout_marginLeft="20dp"

            android:layout_marginTop="10dp"

            android:background="@drawable/back"

                />


        </LinearLayout>

    </RelativeLayout>


  


    <LinearLayout

        android:id="@+id/linearlayoutAddress"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:orientation="vertical" 

       >


        <ListView

            android:id="@+id/addressListView"

            android:layout_width="match_parent"

            android:layout_height="wrap_content"

            android:layout_marginLeft="10dp"

            android:layout_marginRight="10dp"

            android:listSelector="#00000000"

           >

            

        </ListView>


    </LinearLayout>


 


    <Button

        android:id="@+id/AddNewAddress"

        android:layout_width="fill_parent"

        android:layout_height="50dip"

        android:layout_marginBottom="10dp"

        android:text="新增" 

        android:background="@drawable/addressbuttonbg"/>

</LinearLayout>


上面兩個就是xml布局文件


接下來就是.java文件的部分主要代碼:


addressListView = (ListView)findViewById(R.id.addressListView);

List<Map<String, Object>> listitems = new ArrayList<Map<String,Object>>();

       for (int i = 0; i < companys.length; i++) {

Map<String, Object> listitem = new HashMap<String, Object>();

listitem.put("company", companys[i]);

listitem.put("person",persons[i]);

listitem.put("phone", phones[i]);

listitem.put("address", address[i]);

listitems.add(listitem);

}

       

       SimpleAdapter simpleAdapter = new SimpleAdapter(AdrressManageActivity.this, listitems, R.layout.address_item, new String[]{"company","person","phone","address"},new int[]{R.id.CompanyName,R.id.ContactPersonName,R.id.PhoneNumer,R.id.AddressDetail});

       addressListView.setAdapter(simpleAdapter);

       

       //設置焦點響應問題    同時要將 item 中的焦點 focusable 設置為 false

       addressListView.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);

       //設置listview中的哪個item被點擊,然后獲得刪除按鈕

       addressListView.setOnItemClickListener(new OnItemClickListener() {


@Override

public void onItemClick(AdapterView<?> arg0, View view,

int arg2, long arg3) {

// TODO Auto-generated method stub

TextView delButton = (TextView)view.findViewById(R.id.delAddress);

delButton.setOnClickListener(myListener);

}

});


上面加背景色的為最主要代碼。


1、item的布局文件最好不要出現button和check這樣的控件

2、要是用到點擊事件,可以用TextView來代替。原因如下:

你的item中的布局文件最好不要用button或者check控件,因為你用了button或者check控件的話,item的focus就會失焦,因為button或者check控件優先了。所以你會點擊listview的item沒有反應。

3、清除item按下的背景顏色。

在listview的xml中加入: android:listSelector="#00000000"

4、獲得item的點擊事件

addressListView.setOnItemClickListener(new OnItemClickListener() {


@Override

public void onItemClick(AdapterView<?> arg0, View view,

int arg2, long arg3) {

// TODO Auto-generated method stub

delButton = (TextView)view.findViewById(R.id.delAddress);

delButton.setOnClickListener(myListener);

}

});

其中view代表這個item的布局。所以通過方法view.findViewById(xxx);來獲得你要的控件。


5、為你的控件設置監聽器

如上:delButton.setOnClickListener(myListener);


6、你要做出什么響應就自己寫啦。今天憂郁了很久,終于解決了。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

牙克石市| 定西市| 台中县| 盐山县| 饶平县| 谷城县| 额敏县| 远安县| 罗江县| 卓尼县| 调兵山市| 万盛区| 达拉特旗| 灵璧县| 西林县| 康定县| 惠来县| 彭山县| 确山县| 上犹县| 鄂托克旗| 乌审旗| 颍上县| 阿拉善右旗| 乳山市| 莱西市| 建平县| 晋州市| 兴文县| 鞍山市| 姚安县| 新昌县| 陇川县| 嘉义市| 闸北区| 天柱县| 镇原县| 武山县| 巨鹿县| 虎林市| 凌海市|