您的位置:首页 > 移动开发 > Android开发

Android AlertDialog 设置setMultiChoiceItems(多选列表)

2015-12-10 17:01 459 查看
package com.example.setitemlist_dialog;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.main, menu);
return true;
}

private void Mytask(final String s){

AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setTitle(s);
builder.setMessage("确定分享到"+s);
AlertDialog dialog=	builder.create();
dialog.setButton(DialogInterface.BUTTON_POSITIVE, "确定分享"+s, new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getApplicationContext(), "已经分享到"+s, Toast.LENGTH_SHORT).show();

}
});
dialog.show();

}
@Override
public boolean onOptionsItemSelected(MenuItem item) {

int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
if(id==R.id.action_list){
final String [] items={"转发到qq","转发到微信","转发到微博"};
AlertDialog dialog=new AlertDialog.Builder(this).setItems(items, new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getApplicationContext(), items[which], Toast.LENGTH_SHORT).show();
//复杂的业务逻辑
Mytask( items[which]);
}
}).create();
dialog.setTitle("标题1");
dialog.show();
}
//单选列表代码
if(id==R.id.action_singleItemn){
final String[]items={"同时转发到QQ","同时转发到微信","同时转发到微博"};
AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setSingleChoiceItems(items, 1, new DialogInterface.OnClickListener() {
//1表示下标
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getApplicationContext(), items[which], Toast.LENGTH_SHORT).show();
dialog.dismiss();
}
});
AlertDialog dialog=	builder.create();
dialog.show();
}
//多选列表实现
if(id==R.id.action_MultiItemn){
final String [] items={"同时转发到QQ","同时转发到微信","同时转发到微博"};
final boolean checkedItems[]={false,false,false};
AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setMultiChoiceItems(items, checkedItems, new DialogInterface.OnMultiChoiceClickListener() {

@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {

}
});
AlertDialog dialog=builder.create();
dialog.setButton(DialogInterface.BUTTON_POSITIVE, "确定选择", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
//便利这个逻辑有点儿复杂
String s="";
for(int i=0;i<checkedItems.length;i++){
if(checkedItems[i]){
s=s+""+items[i];
}
}
Toast.makeText(getApplicationContext(), "选中了"+s, Toast.LENGTH_LONG).show();

}
});
dialog.show();
}
return super.onOptionsItemSelected(item);
}
}

这里是新建的一个item的布局内容

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.example.setitemlist_dialog.MainActivity" >

<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:showAsAction="never"
android:title="@string/action_settings"/>

<item
android:id="@+id/action_list"
android:orderInCategory="100"
android:showAsAction="never"
android:title="选项列表"/>
<item
android:id="@+id/action_singleItemn"
android:orderInCategory="100"
android:showAsAction="never"
android:title="单选列表" />
<item
android:id="@+id/action_MultiItemn"
android:orderInCategory="100"
android:showAsAction="never"
android:title="多选列表"/>
</menu>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: