Android Single Choice 遇到的问题

来源:互联网 发布:js老虎机抽奖特效 编辑:程序博客网 时间:2024/09/21 09:26
package com.android.ex;import android.app.Activity;import android.app.AlertDialog;import android.app.Dialog;import android.app.AlertDialog.Builder;import android.content.DialogInterface.OnClickListener;import android.content.DialogInterface;import android.os.Bundle;import android.widget.*;import android.view.View;import android.text.*;public class LoginTestActivity extends Activity {  private EditText edittext1;private EditText edittext2;private Button button1;private Button button2;private TextView textview2;final String items[]={"item0","item1","item2","item3","item4"};    int id;        public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                edittext1=(EditText)findViewById(R.id.edittext1);        edittext2=(EditText)findViewById(R.id.edittext2);        button1=(Button)findViewById(R.id.button1);        button2=(Button)findViewById(R.id.button2);               textview2=(TextView)findViewById(R.id.textview2);        button1.setOnClickListener(cl1);        button2.setOnClickListener(cl2);    }    private Button.OnClickListener cl2=new Button.OnClickListener(){        public void onClick(View v){        createDialog3();        }    };    private Button.OnClickListener cl1=new Button.OnClickListener(){        public void onClick(View v){        edittext1.setText(null);        edittext2.setText(null);        }    };        protected void createDialog3(){//Single Choice       AlertDialog.Builder builder=new AlertDialog.Builder(this);    builder.setTitle("Single Choice");    builder.setSingleChoiceItems(items,0,new DialogInterface.OnClickListener(){    public void onClick(DialogInterface dialog,int which){    id=which;                //选中第which个item        }    });    builder.setPositiveButton("OK",new DialogInterface.OnClickListener(){    public void onClick(DialogInterface dialog,int which){    if(id>=0){    textview2.setText(items[id]);              //将选中的第which个item显示在textview2中    }    }    });    builder.setNegativeButton("Cancel",new DialogInterface.OnClickListener(){    public void onClick(DialogInterface dialog,int which){    dialog.dismiss();    }    });    builder.create().show();    }    private void showDialog(String str){    new AlertDialog.Builder(this).setMessage(str).show();    }}
问题:1、如无id变量,items值不会传到textview2中2、OK按键中,textview2.setText(items[id])必须为id,不能为which,否则无法传递item值  

解决:
1、public void onClick方法中,which为形参,故需要一个变量来传递值
2、AlertDialog关闭后,变量消失,故需要一个变量保存选中items的序号
	
				
		
原创粉丝点击