萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> 安卓開發 >> Android單選對話框和多選對話框

Android單選對話框和多選對話框

 main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center_horizontal"
    android:orientation="vertical"
    >

    <Button
        android:id="@+id/singleChoiceButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/singleChoice" 
        android:layout_marginTop="100dip"
        android:textSize="20sp"
     />
    
    <Button
        android:id="@+id/multiChoiceButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/multiChoice" 
        android:layout_marginTop="100dip"
        android:textSize="20sp"
     />

</LinearLayout>


 

MainActivity

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

public class MainActivity extends Activity {
    private Button mSingleChoiceButton;
    private Button mMultiChoiceButton;
    private Dialog mSingleDialog;
    private Dialog mMultiDialog;
    boolean singleFlags[]=null;
    boolean multiFlags[]=null;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		init();
	}
    private void init(){
    	mSingleChoiceButton=(Button) findViewById(R.id.singleChoiceButton);
    	mSingleChoiceButton.setOnClickListener(new ButtonOnClickListenerImpl());
    	mMultiChoiceButton=(Button) findViewById(R.id.multiChoiceButton);
    	mMultiChoiceButton.setOnClickListener(new ButtonOnClickListenerImpl());
    }

	private class ButtonOnClickListenerImpl implements OnClickListener {
		@Override
		public void onClick(View view) {
			switch (view.getId()) {
			case R.id.singleChoiceButton:
				singleFlags=new boolean[]{true,false,false};
                Builder singleBuilder=new Builder(MainActivity.this);
                singleBuilder.setIcon(R.drawable.ic_launcher);
                singleBuilder.setTitle(getResources().getString(R.string.dialog_title));
                singleBuilder.setSingleChoiceItems(R.array.singleChoiceArray, 0, new DialogInterface.OnClickListener() {
					@Override
					public void onClick(DialogInterface dialog, int which) {
						for (int i = 0; i < singleFlags.length; i++) {
							if (i==which) {
								singleFlags[i]=true;
							}else{
								singleFlags[i]=false;
							}
						}
					}
				});
                singleBuilder.setPositiveButton("確定", new DialogInterface.OnClickListener() {
					@Override
					public void onClick(DialogInterface dialog, int which) {
						String result="";
						for (int i = 0; i < singleFlags.length; i++) {
							if (singleFlags[i]==true) {
								result=getResources().getStringArray(R.array.singleChoiceArray)[i];
							}
						}
						 Toast.makeText(MainActivity.this, result, Toast.LENGTH_SHORT).show();
					}
				});
                
                mSingleDialog=singleBuilder.create();
                mSingleDialog.show();
                break;
			case R.id.multiChoiceButton:
				multiFlags=new boolean[]{true,false,false};
                Builder multiBuilder=new Builder(MainActivity.this);
                multiBuilder.setIcon(R.drawable.ic_launcher);
                multiBuilder.setTitle(getResources().getString(R.string.dialog_title));
                multiBuilder.setMultiChoiceItems(R.array.multiChoiceArray, multiFlags, new DialogInterface.OnMultiChoiceClickListener() {
					@Override
					public void onClick(DialogInterface arg0, int which, boolean isChecked) {
						multiFlags[which]=isChecked;
					}
				});
                multiBuilder.setPositiveButton("確定", new DialogInterface.OnClickListener() {
					@Override
					public void onClick(DialogInterface dialog, int arg1) {
						 String result="";
						 
						 for (int i = 0; i < multiFlags.length; i++) {
							if (multiFlags[i]) {
								result=result+getResources().getStringArray(R.array.multiChoiceArray)[i]+" ";
							}
						}
						 Toast.makeText(MainActivity.this,result, Toast.LENGTH_SHORT).show();
					}
				});
                
                mMultiDialog=multiBuilder.create();
                mMultiDialog.show();
				break;
			default:
				break;
			}
		}

	}


}
copyright © 萬盛學電腦網 all rights reserved