UI Android

/*
 * Copyright (C) 2007 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package app.test;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
/**
 * Entry into our redirection example, describing what will happen.
 */
public class Test extends Activity {
  static final int INIT_TEXT_REQUEST = 0;
  static final int NEW_TEXT_REQUEST = 1;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    // Watch for button clicks.
    Button clearButton = (Button) findViewById(R.id.clear);
    clearButton.setOnClickListener(mClearListener);
    Button newButton = (Button) findViewById(R.id.newView);
    newButton.setOnClickListener(mNewListener);
    // Retrieve the current text preference. If there is no text
    // preference set, we need to get it from the user by invoking the
    // activity that retrieves it. To do this cleanly, we will
    // temporarily hide our own activity so it is not displayed until the
    // result is returned.
    if (!loadPrefs()) {
      Intent intent = new Intent(this, RedirectGetter.class);
      startActivityForResult(intent, INIT_TEXT_REQUEST);
    }
  }
  @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == INIT_TEXT_REQUEST) {
      // If the request was cancelled, then we are cancelled as well.
      if (resultCode == RESULT_CANCELED) {
        finish();
        // Otherwise, there now should be text... reload the prefs,
        // and show our UI. (Optionally we could verify that the text
        // is now set and exit if it isn't.)
      } else {
        loadPrefs();
      }
    } else if (requestCode == NEW_TEXT_REQUEST) {
      // In this case we are just changing the text, so if it was
      // cancelled then we can leave things as-is.
      if (resultCode != RESULT_CANCELED) {
        loadPrefs();
      }
    }
  }
  private final boolean loadPrefs() {
    // Retrieve the current redirect values.
    // NOTE: because this preference is shared between multiple
    // activities, you must be careful about when you read or write
    // it in order to keep from stepping on yourself.
    SharedPreferences preferences = getSharedPreferences("RedirectData", 0);
    mTextPref = preferences.getString("text", null);
    if (mTextPref != null) {
      TextView text = (TextView) findViewById(R.id.text);
      text.setText(mTextPref);
      return true;
    }
    return false;
  }
  private OnClickListener mClearListener = new OnClickListener() {
    public void onClick(View v) {
      // Erase the preferences and exit!
      SharedPreferences preferences = getSharedPreferences(
          "RedirectData", 0);
      preferences.edit().remove("text").commit();
      finish();
    }
  };
  private OnClickListener mNewListener = new OnClickListener() {
    public void onClick(View v) {
      // Retrieve new text preferences.
      Intent intent = new Intent(Test.this, RedirectGetter.class);
      startActivityForResult(intent, NEW_TEXT_REQUEST);
    }
  };
  private String mTextPref;
}
/**
 * Sub-activity that is executed by the redirection example when input is needed
 * from the user.
 */
class RedirectGetter extends Activity {
  private String mTextPref;
  private TextView mText;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.row);
    // Watch for button clicks.
    Button applyButton = (Button) findViewById(R.id.apply);
    applyButton.setOnClickListener(mApplyListener);
    // The text being set.
    mText = (TextView) findViewById(R.id.text);
    // Display the stored values, or if not stored initialize with an empty
    // String
    loadPrefs();
  }
  private final void loadPrefs() {
    // Retrieve the current redirect values.
    // NOTE: because this preference is shared between multiple
    // activities, you must be careful about when you read or write
    // it in order to keep from stepping on yourself.
    SharedPreferences preferences = getSharedPreferences("RedirectData", 0);
    mTextPref = preferences.getString("text", null);
    if (mTextPref != null) {
      mText.setText(mTextPref);
    } else {
      mText.setText("");
    }
  }
  private OnClickListener mApplyListener = new OnClickListener() {
    public void onClick(View v) {
      SharedPreferences preferences = getSharedPreferences(
          "RedirectData", 0);
      SharedPreferences.Editor editor = preferences.edit();
      editor.putString("text", mText.getText().toString());
      if (editor.commit()) {
        setResult(RESULT_OK);
      }
      finish();
    }
  };
}
//main.xml



    android:gravity="center_horizontal"
    android:layout_width="match_parent" android:layout_height="match_parent">
            android:layout_width="match_parent" android:layout_height="wrap_content"
        android:layout_weight="0"
        android:paddingBottom="4dip"
        android:text="redirect_main"/>
            android:layout_width="match_parent" android:layout_height="wrap_content"
        android:layout_weight="0"
        android:paddingBottom="4dip" />
            android:layout_width="wrap_content" android:layout_height="wrap_content" 
        android:text="clear_text">
        
    
            android:layout_width="wrap_content" android:layout_height="wrap_content" 
        android:text="new_text">
    

//row.xml



    android:gravity="center_horizontal"
    android:layout_width="match_parent" android:layout_height="match_parent">
            android:layout_width="match_parent" android:layout_height="wrap_content"
        android:layout_weight="0"
        android:paddingBottom="4dip"
        android:text="redirect_getter"/>
            android:layout_width="match_parent" android:layout_height="wrap_content"
        android:layout_weight="0"
        android:paddingBottom="4dip">
        
    
            android:layout_width="wrap_content" android:layout_height="wrap_content" 
        android:text="apply" />