アプリに問題があります。アプリのすべてのアクティビティに含める必要がある一種の即興メニューバーを作成しています。インテントを介してアプリケーションがボタンにリンクされているアクティビティにリンクするように、現在ロードされているアクティビティを特定したいと思います。
public void graphAction()
{
Intent i = new Intent(this, GraphActivity.class );
this.startActivity(i);
}
アプリに問題があります。アプリのすべてのアクティビティに含める必要がある一種の即興メニューバーを作成しています。インテントを介してアプリケーションがボタンにリンクされているアクティビティにリンクするように、現在ロードされているアクティビティを特定したいと思います。
public void graphAction()
{
Intent i = new Intent(this, GraphActivity.class );
this.startActivity(i);
}
以下の関数を試して、最上位のアクティビティ名を取得してください。
private String getTopActivityName() {
ActivityManager am = (ActivityManager)getApplicationContext().getSystemService(
ACTIVITY_SERVICE);
// get the info from the currently running task
List<ActivityManager.RunningTaskInfo> taskInfo = am.getRunningTasks(1);
ComponentName componentInfo = taskInfo.get(0).topActivity;
return componentInfo.getShortClassName();
}
ActionbarSherlock (http://actionbarsherlock.com/) の使用を検討することもできますが、現在アクティブなアクティビティが必要な理由がわかりません。graphAction がアクティビティではなくカスタム オブジェクトにある場合は、そこにアクティビティを渡すだけです (または、コンテキスト オブジェクトを使用してください。アクティビティを渡す必要はありません)。