基于v7.AlertDialog擴展選項v7 AppCompat主題包修改實現(xiàn)多列選擇

有時候犯了懶癌和強迫癥,硬是想基于原來的主題AppCompat進行修改,因為它的顏值還是不錯的,progressdialog等都長得比較好看老板可以接受,而且還可以讓顏色也和系統(tǒng)自帶的匹配,那么就需要探索如何修改了

    public static void showLoginChooseDialog(Context context, DialogInterface.OnClickListener onClickListener, DialogInterface.OnDismissListener onDismissListener) {
        AlertDialog.Builder builder = new AlertDialog.Builder(context);
        builder.setHeaderTitle("選擇登錄方式").setIcon(R.mipmap.ic_launcher);
        ArrayList arrayList = new ArrayList();
        String[] items = new String[]{"微信登錄", "QQ登錄"};
        arrayList.add("微信登錄");
        arrayList.add("QQ登錄");
        builder.setItems(items, onClickListener);
//        builder.setMessage(content);//會導(dǎo)致覆蓋之前的
        builder.setAdapter(new LoginCheckedItemAdapter(arrayList, new int[]{R.drawable.btn_share_weixin, R.drawable.btn_share_qq}), onClickListener);
        builder.setPositiveButton("取消", null);
        AlertDialog alertDialog = builder.create();
        alertDialog.setOnDismissListener(onDismissListener);
        alertDialog.show();
    }

public class LoginCheckedItemAdapter extends DefaultAdapter<String,LoginTypeViewHolder> {

    private  int[] drwables;

    public LoginCheckedItemAdapter(List data, int [] drwables) {
        super(data);
        this.drwables =drwables;
    }
    /*   public LoginCheckedItemAdapter(Context context,
                                   CharSequence[] typeItems,int [] drwabless) {
        super(context, R.layout.view_item_login_type, android.R.id.text1, typeItems);
        if(typeItems.length!=drwabless.length){
            throw new RuntimeException("總數(shù)必須一致");
        }
    }*/


    @Override
    public LoginTypeViewHolder onCreateViewHolder(ViewGroup viewGroup,int viewType) {
        return new LoginTypeViewHolder(LayoutInflater.from(AppContext.getInstance()).inflate(R.layout.view_item_login_type,viewGroup,false));
    }

    @Override
    public void onBindViewHolder(LoginTypeViewHolder viewHolder, int position) {
        String s = getData().get(position);
        viewHolder.tvContent.setText(""+s);
        viewHolder.iv.setImageResource(drwables[position]);

    }
    @Override
    public boolean hasStableIds() {
        return true;
    }

    @Override
    public long getItemId(int position) {
        return position;
    }
}

代碼就這么簡單的搞定了,抱歉沒圖,

保持主題view_item_login_type

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" android:layout_width="match_parent"
    android:gravity="center_vertical"
    android:layout_height="wrap_content">
    <ImageView
        android:id="@android:id/icon"
        android:src="@drawable/btn_share_qq"
        android:paddingLeft="22dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <TextView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@android:id/text1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:minHeight="?android:attr/listPreferredItemHeight"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="@color/colorGray"
        android:textSize="15dp"
        android:gravity="center_vertical"
        android:text="QQ登錄"
        android:paddingLeft="14dip"
        android:paddingRight="15dip"
        android:ellipsize="marquee"
        />
</LinearLayout>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,979評論 25 709
  • afinalAfinal是一個android的ioc,orm框架 https://github.com/yangf...
    passiontim閱讀 15,859評論 2 45
  • ¥開啟¥ 【iAPP實現(xiàn)進入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 7,322評論 0 17
  • 除夕感懷(三) 一年又一年 窗外聲聲爆竹,此起彼伏,不遠處的外灘早已經(jīng)淹沒在爆竹的海洋里;電視屏幕正在直播熱鬧精彩...
    時光里的我閱讀 349評論 0 0
  • 現(xiàn)在是二十二點二十二分,還不想睡,便想寫些屬于自己的文字。 來到這個城市已經(jīng)一年多,準確算起來應(yīng)該是379天8小時...
    7是天使閱讀 601評論 0 0

友情鏈接更多精彩內(nèi)容