定義單選列表dialog

dialog有很多種,這個(gè)例子演示的是單選列表dialog迹淌;
1數(shù)據(jù)由外部來(lái)定義和傳入河绽;
2具體的item響應(yīng)事件也由具體的調(diào)用者來(lái)實(shí)現(xiàn),dialog內(nèi)部定義接口即可唉窃。


demo的演示


GIF.gif

dialog的代碼如下:

package study.lzl.animationtest.view.dialog;

import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.Toast;

import java.util.List;

import study.lzl.animationtest.R;

/**
 * @author: Created by lzl on 2017/6/17.
 * @function: 自定義單選列表dialog
 * @description:
 */

public class SingleSelectDialog extends Dialog {
    private ImageView mCloseImg;//關(guān)閉按鈕
    private Button mSureBtn;//確定選擇按鈕
    private ListView mListView;//列表
    private Context mContext;
    private List<String> mList;
    /**
     * 記錄當(dāng)前選中的值
     */
    private String currentSelectItemName;
    /**
     * 是否被點(diǎn)擊了 如果被點(diǎn)擊了 則此時(shí)可以點(diǎn)擊確定按鈕
     */
    private boolean isBeClick=false;

    public SingleSelectDialog(Context context,List<String> list) {
        super(context, R.style.MyDialog);
        this.mContext=context;
        this.mList=list;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_singleselect_dialog);
        //點(diǎn)擊外部區(qū)域不可取消
        setCanceledOnTouchOutside(false);
        initView();
        initListViewData();
        initEvent();
    }

    /**
     * 加載列表數(shù)據(jù)
     */
    private void initListViewData() {
        mListView.setAdapter(new ArrayAdapter<String>(mContext,R.layout.layout_singleselect_dialog_item,mList));
    }

    private void initView() {
        mCloseImg= (ImageView) findViewById(R.id.single_select_close_btn);
        mSureBtn= (Button) findViewById(R.id.single_select_sure_btn);
        mListView= (ListView) findViewById(R.id.singselect_list);

    }

    private void initEvent() {
        mCloseImg.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                dismiss();
            }
        });
        mSureBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
            if (currentSelectItemName!=null&&!currentSelectItemName.equals("")){
                Toast.makeText(mContext,"你當(dāng)前選中的item"+currentSelectItemName,Toast.LENGTH_SHORT).show();
                }else {
                Toast.makeText(mContext,"您當(dāng)前未選擇任何項(xiàng)",Toast.LENGTH_SHORT).show();
            }

            }
        });

        mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
                if(mList!=null){
                    currentSelectItemName=mList.get(position);
                }
            }
        });
    }
}

布局文件:layout_singleselect_dialog.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="200dp"
    android:layout_height="300dp"
    android:background="@drawable/free_dialog_bg">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:orientation="horizontal"
        android:layout_margin="5dp">
        <TextView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="8"
            android:text="單選列表dialog"
            android:textSize="15dp"
            android:textColor="@color/blue"
            android:gravity="center"/>
        <ImageView
            android:id="@+id/single_select_close_btn"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:src="@mipmap/close_small"
            android:layout_gravity="center_vertical"/>
    </LinearLayout>
    <ListView
        android:id="@+id/singselect_list"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1">

    </ListView>
    <Button
        android:id="@+id/single_select_sure_btn"
        android:layout_width="match_parent"
        android:layout_height="35dp"
        android:background="@drawable/close_btn_bg"
        android:layout_marginLeft="30dp"
        android:layout_marginTop="10dp"
        android:layout_marginRight="30dp"
        android:text="確定"/>
</LinearLayout>

布局文件用到的drawable資源文件:free_dialog_bg.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <!--背景色-->
    <solid android:color="#ffffff" />
    <!--描邊-->
    <stroke
        android:width="0.8dp"
        android:color="#ffffff" />
    <!-- 圓角 -->
    <corners android:radius="10dp" />

</shape>

確定按鈕用到的背景drawable資源文件:close_btn_bg.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <!--填充的背景色-->
    <solid android:color="@color/colorAccent"/>
    <corners android:radius="20dp" />
</shape>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末耙饰,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子纹份,更是在濱河造成了極大的恐慌苟跪,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蔓涧,死亡現(xiàn)場(chǎng)離奇詭異件已,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)元暴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén)篷扩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人茉盏,你說(shuō)我怎么就攤上這事鉴未。” “怎么了鸠姨?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵歼狼,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我享怀,道長(zhǎng)羽峰,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮梅屉,結(jié)果婚禮上值纱,老公的妹妹穿的比我還像新娘。我一直安慰自己坯汤,他們只是感情好虐唠,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著惰聂,像睡著了一般疆偿。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上搓幌,一...
    開(kāi)封第一講書(shū)人閱讀 51,301評(píng)論 1 301
  • 那天杆故,我揣著相機(jī)與錄音,去河邊找鬼溉愁。 笑死处铛,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的拐揭。 我是一名探鬼主播撤蟆,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼堂污!你這毒婦竟也來(lái)了家肯?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤盟猖,失蹤者是張志新(化名)和其女友劉穎讨衣,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體扒披,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡值依,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年圃泡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了碟案。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡颇蜡,死狀恐怖价说,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情风秤,我是刑警寧澤鳖目,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站缤弦,受9級(jí)特大地震影響领迈,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一狸捅、第九天 我趴在偏房一處隱蔽的房頂上張望衷蜓。 院中可真熱鬧,春花似錦尘喝、人聲如沸磁浇。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)置吓。三九已至,卻和暖如春缔赠,著一層夾襖步出監(jiān)牢的瞬間衍锚,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工橡淑, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留构拳,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓梁棠,卻偏偏與公主長(zhǎng)得像置森,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子符糊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,110評(píng)論 25 707
  • 文章來(lái)自https://github.com/Blankj/AndroidStandardDevelop#安卓開(kāi)發(fā)...
    小莊bb閱讀 756評(píng)論 0 1
  • ¥開(kāi)啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開(kāi)一個(gè)線程凫海,因...
    小菜c閱讀 6,409評(píng)論 0 17
  • 更多Android總結(jié)知識(shí)點(diǎn) Android中的13種Drawable小結(jié) Android的八種對(duì)話(huà)框的實(shí)現(xiàn) An...
    侯蛋蛋_閱讀 3,959評(píng)論 0 5
  • 今天發(fā)生很多事情,早上和朋友去看桌子男娄,到銀行行贪,再到客戶(hù)公司… 沒(méi)想到我讓客戶(hù)說(shuō)了快一個(gè)小時(shí)(期間不斷默禱哈利路亞)...
    林茂葉綠閱讀 121評(píng)論 1 2