Skip to content

Snappy1

  • Home
  • Android
  • What
  • How
  • Is
  • Can
  • Does
  • Do
  • Why
  • Are
  • Who
  • Toggle search form

[FIXED] java – How to pass the SharedPreferences data from the settingActivity to the MainAdapter?

Posted on November 11, 2022 By

Solution 1 :

Just pass your context to the function and get the value from sharedpref

    public static String getLan(Context cont) {
SharedPreferences settingPreferences=settingPreferences =cont.getSharedPreferences("setting", MODE_PRIVATE);
String[] language = getResources().getStringArray(R.array.setting_language_mode);
int posi =settingPreferences.getInt("language",0);
return language[pos];
}

Solution 2 :

I think you are doing well on

SharedPreferences language = getContext().getSharedPreferences("setting", MODE_PRIVATE);

But now if you want to get the data (language int in this case) you just have to do the following:

int lang_int = language.getInt("language",0);

Problem :

I created a shopping cart app, and it has a menu item. Then it has another activity called “SettingActivity”, for this settingActivity will have a TextView to show “Primary language, secondary language and both language”.

I got the SharedPreferences data in the SettingActivity. How can I pass those data to the MainAdapter?

Because when I click the secondary language in the SettingActivity, then the menu will change to secondary language or show both languages.

So, how can I get the SettingActivity’s SharedPreference data in the MainAdapter?

SettingActivity:

public class SettingActivity extends AppCompatActivity {
LinearLayout languageModeLinearLayout;
TextView languageModeTextView;
SharedPreferences settingPreferences;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_setting);
    languageModeLinearLayout = findViewById(R.id.setting_language_mode_linearLayout);
    languageModeTextView = findViewById(R.id.setting_language_mode_textView);
    settingPreferences = getSharedPreferences("setting", MODE_PRIVATE);

    updateUI();

    languageModeLinearLayout.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            final String[] language = getResources().getStringArray(R.array.setting_language_mode);
            AlertDialog.Builder languageMode = new AlertDialog.Builder(v.getContext());
            languageMode.setTitle("Select Language Mode");
           languageMode.setItems(language, new DialogInterface.OnClickListener() {
               @Override
               public void onClick(DialogInterface dialog, int position) {
                   SharedPreferences.Editor editor = settingPreferences.edit();
                   editor.putInt("language", position);
                   editor.apply();
                   updateUI();
               }
           });

           languageMode.create().show();
        }
    });


}

private String getLanguage(){
    String[] language = getResources().getStringArray(R.array.setting_language_mode);
    int position;
 position  = settingPreferences.getInt("language", 0);

 return language[position];
}

private void updateUI(){
    languageModeTextView.setText(getLanguage());
}

MainAdapter:

public class MainAdapter extends ArrayAdapter<MenuItem> implements Serializable {
private TextView mCartCounterTextView;

public MainAdapter(Context context, List<MenuItem> menuItems) {
    super(context, 0, menuItems);
}

@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
    View itemView = convertView;
    final ViewHolder viewHolder;

    if (itemView == null) {
        itemView = LayoutInflater.from(getContext()).inflate(R.layout.item_main, parent, false);
        viewHolder = new ViewHolder(itemView);
        itemView.setTag(viewHolder);
    } else {
        viewHolder = (ViewHolder) itemView.getTag();
    }

    final MenuItem currentMenuItem = getItem(position);
    viewHolder.nameTextView.setText(currentMenuItem.getPrimaryName());
    viewHolder.nameTextView.setText(currentMenuItem.getSecondaryName());

    viewHolder.addToCartButton.setText(getFormattedPriceTextToButton(currentMenuItem));
    viewHolder.addToCartButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Main.getAddedItems().add(currentMenuItem);
            Toast.makeText(v.getContext(), "Item had added to cart", Toast.LENGTH_SHORT).show();

            mCartCounterTextView.setText(String.valueOf(Main.getAddedItems().size()));
            mCartCounterTextView.setVisibility(View.VISIBLE);
        }
    });
    return itemView;
}

private String getFormattedPriceTextToButton(MenuItem currentMenuItem) {
    return "+ $" + currentMenuItem.getPrice();
}

private class ViewHolder {
    TextView nameTextView;
    TextView priceTextView;
    Button addToCartButton;

    public ViewHolder(View itemView) {
        nameTextView = itemView.findViewById(R.id.main_name_textView);
        priceTextView = itemView.findViewById(R.id.main_price_textView);
        addToCartButton = itemView.findViewById(R.id.main_add_to_cart_button);
    }
}

public void setData(TextView cartCounter){
    mCartCounterTextView = cartCounter;
}

private void getSharedPreferencesLanguage(){
  //  SharedPreferences.Editor editor = getContext().getSharedPreferences("setting", MODE_PRIVATE).edit();
    SharedPreferences language = getContext().getSharedPreferences("setting", MODE_PRIVATE);
}

MenuItem:

public class MenuItem {
private String mPrimaryName;
private String mSecondaryName;
private double mPrice;

public MenuItem(String primaryName, String secondaryName, double price){
    mPrimaryName = primaryName;
    mSecondaryName = secondaryName;
    mPrice = price;
}

public String getPrimaryName(){
    return mPrimaryName;
}
public String getSecondaryName(){
    return mSecondaryName;
}
public double getPrice(){
    return mPrice;
}
READ  [FIXED] android - How hide/show icon on toolbar when opening some fragments
Powered by Inline Related Posts
Android Tags:android, java, sharedpreferences

Post navigation

Previous Post: [FIXED] java – Access Binding Adapters in multi module project
Next Post: [FIXED] java – Changing value in on item also changes in another item – RecyclerView Android

Related Posts

[FIXED] java – I can’t set the button width inside the table view Android
[FIXED] javascript – Android webview: how to obtain result of evaluateJavascript in a method that invokes evaluateJavascript? Android
[FIXED] android – This is taking an unexpectedly long time Android
[FIXED] java – DIfferent Objects in recyclerview Android
[FIXED] java.nio.channels.OverlappingFileLockException in a QT application on Android Android
[FIXED] android – generate singed apk failed Android

Archives

  • April 2023
  • March 2023
  • February 2023
  • January 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022

Categories

  • ¿Cómo
  • ¿Cuál
  • ¿Cuándo
  • ¿Cuántas
  • ¿Cuánto
  • ¿Qué
  • Android
  • Are
  • At
  • C'est
  • Can
  • Comment
  • Did
  • Do
  • Does
  • Est-ce
  • Est-il
  • For
  • Has
  • Hat
  • How
  • In
  • Is
  • Ist
  • Kann
  • Où
  • Pourquoi
  • Quand
  • Quel
  • Quelle
  • Quelles
  • Quels
  • Qui
  • Should
  • Sind
  • Sollte
  • Uncategorized
  • Wann
  • Warum
  • Was
  • Welche
  • Welchen
  • Welcher
  • Welches
  • Were
  • What
  • What's
  • When
  • Where
  • Which
  • Who
  • Who's
  • Why
  • Wie
  • Will
  • Wird
  • Wo
  • Woher
  • you can create a selvedge edge: You can make the edges of garter stitch more smooth by slipping the first stitch of every row.2022-02-04
  • you really only need to know two patterns: garter stitch

Recent Posts

  • Can Vicks humidifier be used without filter?
  • What color is Spanish green?
  • How old is Jamie in The War That Saved My Life?
  • When should I use scalp massager for hair growth?
  • Can I put polyurethane over liming wax?

Recent Comments

No comments to show.

Copyright © 2023 Snappy1.

Powered by PressBook Grid Dark theme