全局变量值没有改变

问题描述:

我创建了一个按钮,点击后会打开一个AlertDialog,用于输入位置是全局变量的输入。问题是在将可变位置分配给onClickListener之外的值,它仍然显示为空...全局变量值没有改变

String location = ""; 
TextView details; 
TextView cityName; 
TextView temp; 
Button locationInput; 
static String tempString = ""; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    details = (TextView) findViewById(R.id.details_field); 
    cityName = (TextView) findViewById(R.id.city_name); 
    temp = (TextView) findViewById(R.id.current_temperature_field); 
    locationInput = (Button) findViewById(R.id.button_location_input); 


    locationInput.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      final AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this); 
      LayoutInflater inflater = MainActivity.this.getLayoutInflater(); 
      View view = inflater.inflate(R.layout.dialog_box,null); 
      alertDialog.setView(view); 
      alertDialog.setTitle("Enter the location"); 

      final EditText locationInput = (EditText) view.findViewById(R.id.location_input); 
      locationInput.setInputType(InputType.TYPE_CLASS_TEXT); 

      alertDialog.setPositiveButton("Accept", new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        location = locationInput.getText().toString(); 
        Log.i("Location",location); 
        locationInput.setVisibility(View.GONE); 
        tempString = location; 
        dialog.dismiss(); 
       } 
      }); 

      alertDialog.setNegativeButton("Deny", new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which) { 

        dialog.dismiss(); 
       } 
      }); 

      AlertDialog create = alertDialog.create(); 
      create.show(); 
     } 
    }); 
+0

工作,你必须声明的“位置”变量作为字符串和能源部它全局声明? –

+0

哟完成它...说,有问题.. –

+0

请再次检查editText R.id.location_input是否存在于各自的布局或不。用ctrl + B检查。有时微小的错误使空指针Exp –

请更换从AlertDialog代码对话框,如下,它应该是你

Dialog dialog = new Dialog(context); 
     dialog.setContentView(R.layout.custom); 
     dialog.setTitle("Title..."); 

     // set the custom dialog components - text, image and button 
     TextView text = (TextView) dialog.findViewById(R.id.text); 
     text.setText("Android custom dialog example!"); 
     ImageView image = (ImageView) dialog.findViewById(R.id.image); 
     image.setImageResource(R.drawable.ic_launcher); 

     Button dialogButton = (Button) dialog.findViewById(R.id.dialogButtonOK); 
     // if button is clicked, close the custom dialog 
     dialogButton.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       dialog.dismiss(); 
      } 
     }); 

     dialog.show(); 
+0

我没有得到它...我想使用位置变量,用户在API网址中的警报对话框中输入获取天气..所以这将如何帮助......? –