Как я могу получить название предыдущего действия и сохранить в переменной - PullRequest
0 голосов
/ 09 июня 2019

Я разрабатываю приложение, в котором у меня много активностей.И когда пользователь прекращает взаимодействие с содержимым каждого действия, он запускает действие под названием WellDone!где пользователь может увидеть среднее количество уроков (это курс).Выполнено на 100% и есть кнопка для следующего урока.Я хочу получить имя предыдущих действий, например activity_lesson1, activity_lesson2, чтобы показать в TextView, чтобы иметь заголовок.Когда заканчивается урок1, он запускает WellDone!Активность и я хочу установить в TextView (название) название только что изученных уроков.

package com.flixarts.ar.**;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

public class welldone extends AppCompatActivity {

private TextView title;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_pantallanextsesion);

        title = (TextView)findViewById(R.id.tituloActivity);

        title.setText() //Here the title of the previous activity that have come from intent
}

}

Ответы [ 3 ]

0 голосов
/ 10 июня 2019

Возможно, вы могли бы использовать SharedPreferences, которые позволяют вам легко сохранять некоторые строковые значения в одном действии и читать их в другом. В предыдущем упражнении, например, activity_lesson1, вы могли переопределить метод onPause (или onDestroy, если вы завершаете свое действие, переходя к следующему, вызывая метод finish ()) и сохраняете имя действия как String, например:

@Override
public void onPause() {
    super.onPause();
    SharedPreferences sharedPref = this.getPreferences(Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedPref.edit();
    editor.putString("LAST_ACTIVITY_NAME", this.getClass().getSimpleName());
    editor.apply();
}

Затем вы можете прочитать сохраненное значение в деятельности WellDone следующим образом:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    SharedPreferences sharedPref = this.getPreferences(Context.MODE_PRIVATE);
    String lastActivityName = sharedPref.getString("LAST_ACTIVITY_NAME", "default_value");
    title.setText(lastActivityName);
}
0 голосов
/ 28 июня 2019

Два способа передать имя предыдущей активности

Использование намерения

FirstActivity

 String TAG=FirstActivity.class.getSimpleName();

 submitBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            name=nameEt.getText().toString();
            mobile_number=mobileEt.getText().toString();
            Intent intent=new Intent(FirstActivity.this,SecondActivity.class);
             intent.putExtra("Last_Activity_Name",TAG);
            startActivity(intent);
        }
    });

SecondActivity

  String lastActivityName;
lastActivityName=getIntent().getStringExtra("Last_Activity_Name");

** использовать SharedPreferences **

FirstActivity

  SharedPreferences sharedPref = this.getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString("Last_Activity_Name", TAG);
editor.apply();

SecondActivity

SharedPreferences sharedPref = this.getPreferences(Context.MODE_PRIVATE);
String lastActivityName = sharedPref.getString("Last_Activity_Name", 
 "default_value");
title.setText(lastActivityName);
0 голосов
/ 09 июня 2019

У меня сложилось впечатление, что ответ на буквальный вопрос «нет» - вы не можете получить название предыдущей деятельности.Но, вероятно, есть другой способ выполнить то, что вам нужно.

Если это все ваши действия, почему бы не добавить в намерение дополнительный (при переходе в прямом направлении), который говорит, из какой деятельности он идет.

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

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