私のコードフローは次のとおりです。
Reports => ReportsType
レポートには 3 つの項目があり、各項目をクリックすると、どの項目がクリックされたかを区別する目的ReportsType
で、名前の付いたタグを渡すアクティビティを開始しています。name
問題は、OnCreate メソッドが 1 回だけ呼び出されることです。そのため、見出しは常に最初にクリックされた項目に設定されます。
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()
3 つの項目のいずれかをクリックすると、各項目が呼び出されます。
アップデート:
goBackReport コード
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" />