AlertDialog图片文本列表

来源:互联网 发布:c语言中的temp 编辑:程序博客网 时间:2024/05/17 21:55

strings.xml

<resources>    <string name="app_name">AlertDialogList</string>    <string name="str_color">设置字体颜色</string>    <string name="str_setting">进行设置</string>    <string-array name="color_name">        <item>红色</item>        <item>绿色</item>        <item>蓝色</item>    </string-array>    <!--设置文本-->    <string-array name="setting_names">        <item>wifi设置</item>        <item>蓝牙设置</item>        <item>声音设置</item>        <item>日期设置</item>    </string-array>    <!--设置图片-->    <string-array name="setting_images">        <item>image1</item>        <item>image2</item>        <item>image3</item>        <item>image4</item>    </string-array></resources>

list_item.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent">    <ImageView        android:id="@+id/tv_logo"        android:layout_width="50dp"        android:layout_height="50dp"        android:src="@drawable/image1"/>    <TextView        android:id="@+id/tv_name"        android:layout_width="0dp"        android:layout_height="wrap_content"        android:layout_weight="1"        android:text="TextView"/></LinearLayout>

这里写图片描述

package com.studio.alertdialoglist;import android.app.AlertDialog;import android.content.DialogInterface;import android.content.Intent;import android.graphics.Color;import android.media.audiofx.BassBoost;import android.provider.Settings;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.support.v7.widget.ButtonBarLayout;import android.util.AndroidException;import android.view.View;import android.widget.Button;import android.widget.SimpleAdapter;import android.widget.TextView;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;/** * 演示AlertDialog中各种列表形式 */public class MainActivity extends AppCompatActivity implements View.OnClickListener{    private Button btnColor,btnSetting;    private TextView tvInfo;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initView();    }    /*    初始化控件的方法     */    public void initView(){        btnColor=(Button)findViewById(R.id.btn_color);        btnSetting= (Button) findViewById(R.id.btn_setting);        tvInfo= (TextView) findViewById(R.id.tvInfo);        btnColor.setOnClickListener(this);        btnSetting.setOnClickListener(this);    }    @Override    public void onClick(View view) {        switch (view.getId()){            case R.id.btn_color://设置字体颜色                showCommonListDialog();                break;            case R.id.btn_setting://设置界面                showAdapterListDialog();                break;        }    }    /**     * 展示适配器列表dialog     */    public void showAdapterListDialog(){        AlertDialog.Builder builder=new AlertDialog.Builder(this);        builder.setTitle("打开设置");        builder.setIcon(android.R.drawable.btn_star);        //获取名称数组        String[] stringNames=getResources().getStringArray(R.array.setting_names);        //获取图片数组        String[] imageNames=getResources().getStringArray(R.array.setting_images);        List<Map<String,Object>> data = new ArrayList<Map<String,Object>>();        for(int i=0;i<stringNames.length;i++){            Map<String,Object> map = new HashMap<String, Object>();            map.put("setting",stringNames[i]);            //getIdentifier(),根据资源的名称和类型获取资源的id            int imageId=getResources().getIdentifier(imageNames[i],"drawable",getPackageName());            map.put("image",imageId);            data.add(map);        }        SimpleAdapter adapter = new SimpleAdapter(this,data,R.layout.list_item,                new String[]{"setting","image"},                new int[]{R.id.tv_name,R.id.tv_logo});        //setAdapter(加载适配器对象,点击列表项触发事件)        builder.setAdapter(adapter, new DialogInterface.OnClickListener() {            @Override            public void onClick(DialogInterface dialogInterface, int i) {                Intent intent = null;                switch (i){                    case 0://wifi                        intent = new Intent(Settings.ACTION_WIFI_SETTINGS);                        break;                    case 1:                        intent = new Intent(Settings.ACTION_BLUETOOTH_SETTINGS);                        break;                    case 2:                        intent = new Intent(Settings.ACTION_SOUND_SETTINGS);                        break;                    case 3:                        intent = new Intent(Settings.ACTION_DATE_SETTINGS);                        break;                }                startActivity(intent);            }        });        builder.create().show();    }

这里写图片描述

原创粉丝点击