86

ActivityのURIで送信される現在の名前を取得したいのですがHttpRequest。特に参照せずにこれを行う方法はありActivityますか?

できることはわかっていますmyActivity.class.toString()が、静的参照を作成しているため、これは「myActivity」をハードコーディングする効率の低い方法ですActivity。'this'のようなものを使用してこれを行うためのより一般的な方法はありますか(これは、必要な情報よりも多くの情報を返すため、実際にはここでは機能しません)。

4

5 に答える 5

204

this.getClass().getSimpleName()アクティビティの名前を取得するために使用します。

コメントから、OnClickListener(または他の内部クラス)のコンテキストにいる場合は、クラスを手動で指定します。

MainActivity.class.getSimpleName()

于 2012-05-16T23:40:56.253 に答える
23

リフレクションを使用したくない純粋主義者の場合、別の方法はPackageManager次のように使用することです。

PackageManager packageManager = activity.getPackageManager();
try {
  ActivityInfo info = packageManager.getActivityInfo(activity.getComponentName(), 0);
  Log.e("app", "Activity name:" + info.name);
} catch (NameNotFoundException e) {
  e.printStackTrace();
}

getClass().getName()ただし、これは(でさえも)同じことをするためだけに多くの作業のように思えgetSimpleName()ます。しかし、クラス名だけでなく、アクティビティに関する詳細情報が必要な場合にも役立つと思います。

于 2013-09-10T09:49:13.707 に答える
5
ActivityManager am = (ActivityManager)context.getSystemService(ACTIVITY_SERVICE);
List< ActivityManager.RunningTaskInfo > taskInfo = am.getRunningTasks(1);
this.currentActivity = taskInfo.get(0).topActivity.getClassName();
Log.i( "CURRENT Activity ",  currentActivity);
于 2016-10-13T06:53:07.397 に答える
3

まずmanifest.xml、ファイルを開きます

あなたはあなたのパッケージ名を見つけるでしょうすなわち"com.company.projectname"

次に:あなたのアクティビティ名がMainActivity

MainActivity.class.getCanonicalName() >output> "com.company.projectname.MainActivity"

また

MainActivity.class.getSimpleName() >output> "MainActivity"

また

MainActivity.class.getName() >output> "com.company.projectname.MainActivity"
于 2018-06-25T12:47:56.993 に答える
1

Xamarinの場合

string GetActivityClassName(Activity activity) //Receiving LoginActivity
{
    //ComponentName
    activity.ComponentName; //Output: "md5101a0260d0a0e5d40a0a9009be09b0c2.LoginActivity"

    //LocalClassName
    activity.LocalClassName; //Output: "md5101a0260d0a0e5d40a0a9009be09b0c2.LoginActivity"

    //Java.Lang.Class.FromType.SimpleName
    Java.Lang.Class.FromType(activity.GetType()).SimpleName; //Output "LoginActivity"

    //Type.Name
    activity.GetType().Name; //Output "LoginActivity"
}
于 2019-03-20T08:07:49.133 に答える