Androidのチェックボックスダイアログ

19368 ワード

main.xmlレイアウトファイル

  
    
<? xml version = " 1.0 " encoding = " utf-8 " ?>
< LinearLayout xmlns:android = " http://schemas.android.com/apk/res/android "
android:orientation
= " vertical " android:layout_width = " fill_parent "
android:layout_height
= " fill_parent " >
< EditText android:text = ""
android:id
= " @+id/editText "
android:layout_width
= " fill_parent "
android:layout_height
= " wrap_content "
android:editable
= " false "
android:cursorVisible
= " false " />
< Button android:text = " "
android:id
= " @+id/button "
android:layout_width
= " fill_parent "
android:layout_height
= " wrap_content " />
</ LinearLayout >
array.xml配列

  
    
<? xml version = " 1.0 " encoding = " utf-8 " ?>
< resources >
< string - array name = " hobby " >
< item > </ item >
< item > </ item >
< item > </ item >
</ string - array >
</ resources >
AlertActivity類

  
    
package com.ljq.dialog;

import android.app.Activity;
import android.app.Dialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class AlertDialog extends Activity {
private EditText editText;
private final static int DIALOG = 1 ;
boolean [] flags = new boolean []{ false , false , false }; //
String[] items = null ;

@Override
public void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
setContentView(R.layout.main);

items
= getResources().getStringArray(R.array.hobby);
editText
= (EditText)findViewById(R.id.editText);
Button button
= (Button) findViewById(R.id.button);
button.setOnClickListener(
new View.OnClickListener() {
public void onClick(View v) {
//
showDialog(DIALOG);
}
});
}

/**
*
*/
@Override
protected Dialog onCreateDialog( int id) {
Dialog dialog
= null ;
switch (id) {
case DIALOG:
Builder builder
= new android.app.AlertDialog.Builder( this );
//
builder.setIcon(R.drawable.header);
//
builder.setTitle( " " );
builder.setMultiChoiceItems(R.array.hobby, flags,
new DialogInterface.OnMultiChoiceClickListener(){
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
flags[which]
= isChecked;
String result
= " " ;
for ( int i = 0 ; i < flags.length; i ++ ) {
if (flags[i]){
result
= result + items[i] + " " ;
}
}
editText.setText(result.substring(
0 , result.length() - 1 ));
}
});

//
builder.setPositiveButton( " " , new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int which) {

}
});
//
dialog = builder.create();
break ;
}
return dialog;
}

}
実行結果
Android之复选框对话框