title: Don't run function on onRestoreInstanceState
body: <p>I am working on an app that when you go to a screen you select your location from a dialog which is created within <code>onCreate</code>. Once the location is selected it writes it into a predined <code>TextView</code>. A problem that I am having is when the screen orientation changes it recreates the dialog and I'm trying to have it not fire the dialog function.</p>
  
  <p>Here is the basics of what I have within the class file.</p>
  
  <pre><code>  @Override
    public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
  
      setContentView(R.layout.emergpolice);
  
      form_location = (TextView) findViewById(R.id.input_location);
  
      if(form_location == null || form_location.getText().equals("")){
          setLocation();
      }
  }
  
  @Override
  protected void onSaveInstanceState(Bundle outState){
      super.onSaveInstanceState(outState);
      outState.putString("LOCATION", (String)form_location.getText());
  }
  
  @Override
  protected void onRestoreInstanceState(Bundle savedInstanceState){
      super.onRestoreInstanceState(savedInstanceState);
      form_location.setText(savedInstanceState.getString("LOCATION"));
  }
  
  public void setLocation(){
      db = new DatabaseHandler(this);
      db.open();
      final CharSequence[] locOpt = {getString(R.string.dialog_items_current_location),getString(R.string.dialog_items_home),getString(R.string.dialog_items_enter_manually)};
      AlertDialog.Builder builder = new AlertDialog.Builder(this);
      builder.setTitle(getString(R.string.header_choose_location));
      builder.setSingleChoiceItems(locOpt, -1, new DialogInterface.OnClickListener() {
          public void onClick(DialogInterface dialog, int item){
              if(locOpt[item].equals(getString(R.string.dialog_items_home))){
                  Cursor cur = db.userInfo(); 
                  String address = cur.getString(cur.getColumnIndex("address"));
                  String city = cur.getString(7);
                  String county = cur.getString(8);
                  String state = cur.getString(9);
                  String zip = cur.getString(10);
                  db.close();
                  form_location.setText(address + ", " + city + ", " + county + ", " + state + ", " + zip);
              }
              if(locOpt[item].equals(getString(R.string.dialog_items_current_location))){
                  Toast.makeText(getApplicationContext(), locOpt[item], Toast.LENGTH_SHORT).show();
              }
              dialog.cancel();
          }
      });
      AlertDialog alert = builder.create();
      alert.show();
  }
  </code></pre>
  
  <p>And the <code>TextView</code> in my layout is</p>
  
  <pre><code>        &lt;TextView
              android:id="@+id/input_location"
              android:layout_width="wrap_content"
              android:layout_below="@+id/text_location"
              android:layout_height="wrap_content"
              android:text="" /&gt;
  </code></pre>
  
  <p>As far as firing <code>setLocation()</code> is have tried several scenarios to check the string length, whether null or not. When the screen changes it shows the original chosen location, but still fires the dialog.</p>