开发者社区> 问答> 正文

dialog中的EditText中的内容为什么获取不到,代码总是报错,就大神帮忙?报错

代码如下,但是String name = nameet.getText().toString(); 这句总报错,在nameet下有红色的波浪线,错误为nameet cannot be resolved

private void victory(){ 

//Intent intent = new Intent(); 
   //intent.putExtra("lock", "1"); 
//setResult(RESULT_CODE, intent); 
android.content.DialogInterface.OnClickListener listener= new MyListener(); 
EditText nameet = new EditText(this); 
new AlertDialog.Builder(this)    
.setTitle("成功啦!") 
.setMessage("敢问大侠名号?") 
//.setIcon(android.R.drawable.ic_dialog_info)    
.setView(nameet)    
.setPositiveButton("挑战下一关", listener)    
.setNegativeButton("选择关卡", listener)    
.show(); 

public class MyListener implements 
android.content.DialogInterface.OnClickListener { 
public void onClick(DialogInterface dialog, int which) { 

switch(which){ 
case AlertDialog.BUTTON_POSITIVE:{ 
//比较,写入最高分数 
if(current_score>record.getBestScode()){ 
record.setBestScode(current_score); 
tv_bestScore.setText(current_score+""); 
   } 
Toast.makeText(Play.this, name,Toast.LENGTH_LONG).show(); 
//存入玩家名号  
String name = nameet.getText().toString();  
//跳到下一关 
gradenum = gradenum * 2; 
Intent intent = new Intent(); 
   intent.putExtra("gradelock", gradenum+""); 
setResult(RESULT_CODE1, intent); 
finish(); 
break; 


//选择关卡 
case AlertDialog.BUTTON_NEGATIVE:{ 
//比较,写入最高分数 
if(current_score>record.getBestScode()){ 
record.setBestScode(current_score); 
tv_bestScore.setText(current_score+""); 

gradenum = gradenum * 2; 
Intent intent = new Intent(); 
   intent.putExtra("gradelock", gradenum+""); 
setResult(RESULT_CODE2, intent); 
finish(); 
break; 

展开
收起
爱吃鱼的程序员 2020-06-14 21:24:00 541 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    把你报错的log贴出来看看才知道啊<spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">nameet是局部变量,应该把按钮监听写成匿名类,这样就可以引用到了<spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">EditTextnameet=newEditText(this); <spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">  之前加个final试试 或定义成全局变量<spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">nameet不能是局部变量,要定义成全局变量,你在方法外部声明该变量

    2020-06-14 21:24:17
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载