我的代码流程是:
Reports => ReportsType
报告有 3 个项目,在单击每个项目时,我开始ReportsType
传递带有名称的标签的活动name
,以区分单击了哪个项目。
问题是 OnCreate 方法只被调用一次,所以标题总是设置为开始时单击的项目。
public void onCreate(Bundle si)
{
Intent intent = getIntent();
heading = intent.getExtras().getString("name"); //this tells which item was clicked.
TextView heading_txt = (TextView) findViewById(R.id.heading);
heading_txt.setText(heading);
}
我试图onResume()
调用这段代码,因为每次活动恢复时都会调用它。但是仍然getIntent()
给出了name
前一项中设置的旧值。
如何在其他活动中获取当前单击的项目意图值?
更新:
报告活动代码:
public void showReport(View v) {
String tag = v.getTag().toString();
Intent i5 = new Intent(this, ReportsType.class);
i5.putExtra("name", tag);
startActivity(i5);
}
其中showReport()
方法被称为每个项目,您单击三个项目中的任何一个。
更新:
goBack报告代码
public void goBackReport(View v)
{
Intent intent = new Intent(ReportsType.this, Reports.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(intent);
finish();
}
XML 按钮视图
<Button
android:id="@+id/entry"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/btn_blue_xml"
android:clickable="true"
android:padding="8dp"
android:onClick="goBackReport"
android:text="Back"
android:textColor="#ffffff"
android:textSize="15dp" />