동적으로 활동 이름 가져 오기-Android
Activity의 URI에 함께 보낼 현재의 이름을 얻고 싶습니다 HttpRequest. 특별히 언급하지 않고이를 수행 할 수있는 방법이 Activity있습니까?
나는 내가 할 수 있다는 것을 알고 myActivity.class.toString()있지만 이것은 내 .NET에 대한 정적 참조를 만들고 있기 때문에 "myActivity"를 하드 코딩하는 덜 효율적인 방법입니다 Activity. 'this'(원하는 것보다 더 많은 정보를 반환하기 때문에 실제로 여기서 작동하지 않는 btw)와 같은 것을 사용하여 이것을 수행하는 더 일반적인 방법이 있습니까?
this.getClass().getSimpleName()활동의 이름을 가져 오는 데 사용 합니다.
주석에서 OnClickListener(또는 다른 내부 클래스) 컨텍스트에있는 경우 수동으로 클래스를 지정합니다.
MainActivity.class.getSimpleName()
반사를 사용하고 싶지 않은 순수 주의자들에게는 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()). 그러나 클래스 이름보다 활동에 대한 더 많은 정보를 원하는 사람에게 유용 할 것 같습니다.
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);
첫째 :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"
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"
}
참고 URL : https://stackoverflow.com/questions/10628152/get-activity-name-dynamically-android
'Nice programing' 카테고리의 다른 글
| 데이터베이스에서 문자열 일부 검색 및 바꾸기 (0) | 2020.11.09 |
|---|---|
| MySQL Workbench에서 테이블 생성 스크립트를 얻는 방법은 무엇입니까? (0) | 2020.11.09 |
| 개체를 HttpClient.PostAsync에 전달하고 JSON 본문으로 직렬화하려면 어떻게해야합니까? (0) | 2020.11.09 |
| PHP에서 @ 연산자로 오류 억제 (0) | 2020.11.09 |
| Mac OSX에 Matplotlib 플롯이 표시되지 않습니까? (0) | 2020.11.09 |