Активность с Spinner & Toggle Button - PullRequest
0 голосов
/ 21 января 2012

Я создаю одно приложение, и это страница настроек (представление «Активность») моего приложения: this.
Я использую один Toggle Button & Spinner.

Когда отмечена кнопка переключения, профиль пользователя виден всем другим пользователям этого приложения и скрыт, когда он не отмечен.

Из опций Spinner пользователь может искать других пользователей этого приложения вокруг себя, выбрав расстояние.

В чем моя проблема -> Когда приложение запускает эти настройки, работающие, но когда я перезапускаю предыдущие настройки пользователя моего приложения теряются (то есть, они не являются постоянными, и я снова должен сделать эти настройки) ... Как я может прийти из этой проблемы. Мой код ->

public class Settings extends Activity implements OnCheckedChangeListener, OnItemSelectedListener  {
ToggleButton tgb;
Spinner redai;

final String[] dis_option= new String[]{"1 mile","5 miles","10 miles","All"};

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.settings);

  //Toggle Button
     tgb = (ToggleButton) findViewById(R.id.settings_visibility);
     tgb.setOnCheckedChangeListener(this);

  //Spinner 
    redai=(Spinner)findViewById(R.id.settings_redai);
    ArrayAdapter<String> sel_dis=new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, dis_option);
    sel_dis.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    redai.setAdapter(sel_dis);
    redai.setOnItemSelectedListener(this);

}

@Override
public void onItemSelected(AdapterView<?> parent, View v, int position,
        long id) {
    // TODO Auto-generated method stub
    String temp_nearBy=parent.getItemAtPosition(position).toString();

    /** preference that write the selected distance for further references in other Activities */
    SharedPreferences nearByDistanceWrite = getSharedPreferences("nearBy", MODE_WORLD_READABLE);
    SharedPreferences.Editor edit = nearByDistanceWrite.edit();
    edit.putString("upToDistance", temp_nearBy);
    edit.commit();
    Log.i("Settings_Spinner", "onItemSelected_pref_edited..."+temp_nearBy);
}

@Override
public void onNothingSelected(AdapterView<?> arg0) {
    // TODO Auto-generated method stub

}

@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
    // TODO Auto-generated method stub
    if (!isChecked) {
        buttonView.getContext(); 
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setMessage("Are you sure you want to Hide Your Profile?")
               .setCancelable(false)
               .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                   public void onClick(DialogInterface dialog, int id) {


                     //here, I pass Visibility as '0' which means profile of fan is Hidden & not seen to other fans!
                       setVisibility(0);//Method which set Connection with sever & set the visibility of user profile accordingly 

                       /** Here you have to write code to set device token as '0' to hide the Profile of Fan! */
                       final ProgressDialog pg= ProgressDialog.show(Settings.this, "Progress...", "please wait updating settings!",true);
                       Toast.makeText(Settings.this,"Your Profile Set Hidden Successfully!", Toast.LENGTH_LONG).show();
                   }
               })
               .setNegativeButton("No", new DialogInterface.OnClickListener() {
                   public void onClick(DialogInterface dialog, int id) {
                      //setting toggle button to unchecked 
                        ToggleButton tg=(ToggleButton)findViewById(R.id.settings_visibility);//buttonView.setChecked(false);
                        tg.setChecked(true); 

                        dialog.cancel();

                   }
               });
        AlertDialog alert = builder.create();
        alert.show();
    } else {
        //here, I  pass Visibility as '1' which means profile of fan is visible to other fans
        setVisibility(1);
        Toast.makeText(Settings.this,"Your Profile get Visible Successfully!", Toast.LENGTH_SHORT).show();
    }
}


@Override
protected void onResume() {
    // TODO Auto-generated method stub
    super.onResume();


    Log.i("Settings_onResume", "onresume_after(new)..."+nearBy);

}

/** Method that set connection with server & Set the visibility of Fan Profile to either Visible(1) or Hidden(0)
 * @param visibility : The int value which indicate to set profile of a Fan to be Visible or Hidden. */
private void setVisibility(int visibility) {
//...more code ...

 }

}  

Как я могу получить эти Settings (старые настройки или мои предыдущие настройки), когда я перезапущу свое приложение ... ??? &

Как мне сделать Spinner более привлекательным и привлекательным (системный счетчик выглядит не очень хорошо) ???

Я рад иметь pointers или code snippets, чтобы решить эту проблему!

1 Ответ

0 голосов
/ 21 января 2012

Если это для приложения, вы должны использовать ваши SharedPreferences, чтобы вернуть эти значения. Это именно то, для чего они должны быть использованы. Доступ к данным, относящимся к этому конкретному приложению.

...