Наличие более чем одной активности запуска - PullRequest
0 голосов
/ 31 августа 2018

Я работаю над приложением, которое может считывать данные автомобиля.
Когда пользователь открывает его в первый раз, он должен выбрать автомобиль, на котором ездит (это в MainActivity).
Я хочу, чтобы пользователь не всегда выбирал свой автомобиль при открытии приложения.
Приложение должно сразу перейти к данным автомобиля Активность его автомобиля после того, как пользователь выбрал автомобиль один раз.
Можете ли вы дать мне несколько идей, как это сделать?

Я уже писал в AndroidManifest, что MainActivity и это действие с данными автомобиля являются активностями запуска, но я думаю, что оно не будет работать, потому что, как приложение должно знать, какое действие должно запускать действие.
Пожалуйста, помогите мне немного!

Ответы [ 3 ]

0 голосов
/ 31 августа 2018

Вы можете использовать SharedPreference для этого процесса.

SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(YourLaunchActivity.this);
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putBoolean("isCarSet", true);
editor.apply();

Тогда проверяйте каждый раз Запустите активность

if (sharedpreferences.getBoolean("isCarSet", false)) {
    Intent i =new Intent(YourLaunchActivity.this,SecondActivty.class);
    startActivity(i);
    finish();
    }

Я предлагаю вам использовать Shared Preference.

0 голосов
/ 31 августа 2018

Вы должны создать два вида деятельности:
- MainActivity (помечено как активность запуска в манифесте), где вы показываете данные автомобиля.
- CarChooseActivity, где вы выбираете автомобиль.

В методе MainAcitivity on onResume () попробуйте прочитать данные автомобиля (из SharedPreferences или другого источника). Если это удалось, то покажите вам данные автомобиля, в противном случае откройте CarChooseActivity.

Примерно так:

public class MainActivity extends AppCompatActivity {

//code omitted

    @Override
    protected void onResume() {
        super.onResume();


        Car car = readCar();
        if (car == null){//no car saved
            Intent i = new Intent(this, CarChooseActivity.class);
            startActivity(i);
        }

    }

//code omitted
}


public class CarChooseActivity extends AppCompatActivity {

    Button mSaveButton;

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState, @Nullable PersistableBundle persistentState) {
        super.onCreate(savedInstanceState, persistentState);

        //code omitted

        mSaveButton = findViewById(R.id.savebutton);
        mSaveButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                saveCar();//save choosed car to SharedPreferences or other storage
                finish();
            }
        });

        //code omitted
    }
}
0 голосов
/ 31 августа 2018

В этом случае вы можете использовать Shared Preferences . Как только данные зарегистрированы в Shared Preference, каждый раз, когда приложение запускается, считывают данные из Shared Preference и переходят непосредственно на нужную страницу.

Пример кода для общего предпочтения:

Установка значений в настройках:

SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit();
 editor.putString("name", "Elena");
 editor.putInt("idName", 12);
 editor.apply();

Извлечение данных из предпочтения:

SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE); 
String restoredText = prefs.getString("text", null);
if (restoredText != null) {
  String name = prefs.getString("name", "No name defined");//"No name defined" is the default value.
  int idName = prefs.getInt("idName", 0); //0 is the default value.
}

дополнительная помощь по адресу: https://developer.android.com/guide/topics/data/data-storage#pref

Другой способ - использовать сессии, но, находясь на начальной стадии, я бы предложил вам использовать Shared Preference.

...