Mega Code Archive

 
Categories / Android / UI
 

Manager Preference with PreferenceActivity

package app.test; import android.app.Activity; import android.content.Intent; import android.content.SharedPreferences; import android.content.res.Resources; import android.os.Bundle; import android.preference.PreferenceManager; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.widget.TextView; import android.os.Bundle; import android.preference.PreferenceActivity;  class FlightPreferenceActivity extends PreferenceActivity {     @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         addPreferencesFromResource(R.xml.main);     } } public class Test extends Activity {   private Resources resources;   private SharedPreferences prefs;   private TextView tv = null;        /** Called when the activity is first created. */     @Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.main);                  resources = this.getResources();         prefs = PreferenceManager.getDefaultSharedPreferences(this);       PreferenceManager.setDefaultValues(this, R.xml.main, false);         tv = (TextView)findViewById(R.id.text1);                  setOptionText();     }          @Override     public boolean onCreateOptionsMenu(Menu menu)      {        MenuInflater inflater = getMenuInflater();        inflater.inflate(R.menu.my_menu, menu);        return true;     }     @Override     public boolean onOptionsItemSelected (MenuItem item)     {        if (item.getItemId() == R.id.menu_prefs)        {            Intent intent = new Intent()                .setClass(this, FlightPreferenceActivity.class);            this.startActivityForResult(intent, 0);        }        return true;     }     @Override     public void onActivityResult(int reqCode, int resCode, Intent data)     {       super.onActivityResult(reqCode, resCode, data);       setOptionText();     }          private void setOptionText()     {       String option = prefs.getString("", null);       String[] optionText = new String[]{};                tv.setText(option + " (" +optionText[Integer.parseInt(option)] + ")");     } } //main.xml <?xml version="1.0" encoding="utf-8"?> <PreferenceScreen     xmlns:android="http://schemas.android.com/apk/res/android"   android:key="flight_columns_pref"    android:title="Flight Search Preferences"   android:summary="Set Columns for Search Results">   <CheckBoxPreference       android:key="show_airline_column_pref"     android:title="Airline"     android:summary="Show Airline column" />   <CheckBoxPreference       android:key="show_departure_column_pref"     android:title="Departure"     android:summary="Show Departure column" />   <CheckBoxPreference       android:key="show_arrival_column_pref"     android:title="Arrival"     android:summary="Show Arrival column" />   <CheckBoxPreference       android:key="show_total_travel_time_column_pref"     android:title="Total Travel Time"      android:summary="Show Total Travel Time column" />   <CheckBoxPreference       android:key="show_price_column_pref"     android:title="Price"      android:summary="Show Price column" /> </PreferenceScreen> //my_menu.xml <?xml version="1.0" encoding="utf-8"?> <!-- This file is /res/menu/mainmenu.xml --> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/menu_prefs"     android:title="@string/menu_prefs_title"     /> </menu> //xml/main.xml <?xml version="1.0" encoding="utf-8"?> <!-- This file is /res/layout/main.xml --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:orientation="vertical"     android:layout_width="match_parent"     android:layout_height="match_parent"     >      <TextView android:text="" android:id="@+id/text1"      android:layout_width="match_parent"     android:layout_height="wrap_content"     /> </LinearLayout>