全局变量值未更改

时间:2017-03-07 17:09:04

标签: android alertdialog

我创建了一个按钮,在单击时会打开一个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();
        }
    });

1 个答案:

答案 0 :(得分:0)

请将AlertDialog中的代码替换为Dialog,如下所示,它应该适合您

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();