我正在开发一个有很多活动的应用程序。当用户结束与每个活动内容的交互时,它会启动一个称为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
}
}
答案 0 :(得分:0)
我的印象是,字面问题的答案是“否”-您无法获得上一个活动的名称。但是,可能还有另一种方法可以满足您的需求。
如果这些都是您的活动,为什么不在意图中添加额外的内容(当向前移动时),说明意图来自哪个活动。
然后您可以通过检查多余内容来决定要显示的活动名称,这应该告诉您先前的活动是什么。
答案 1 :(得分:0)
也许您可以使用SharedPreferences,它使您可以轻松地将一个String值保存在一个活动中,并在另一个活动中读取它。在上一个活动中,例如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);
}
答案 2 :(得分:0)
两种方式传递先前的活动名称
使用意图
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);