android 非activity类 获取 activity类的ID 并使用
时间: 2024-03-23 20:37:38 浏览: 25
在非 `Activity` 类中获取 `Activity` 的 ID 并使用,可以通过以下步骤实现:
1. 定义一个接口,用于将 `Activity` 的 ID 传递给非 `Activity` 类。例如:
```java
public interface OnActivityIdSetListener {
void onActivityIdSet(int activityId);
}
```
2. 在 `Activity` 中实现该接口,并将 `Activity` 的 ID 传递给非 `Activity` 类。例如:
```java
public class MainActivity extends AppCompatActivity implements OnActivityIdSetListener {
private int mActivityId;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 获取 Activity 的 ID
mActivityId = this.hashCode();
// 传递 Activity 的 ID 给非 Activity 类
NonActivityClass nonActivityClass = new NonActivityClass();
nonActivityClass.setOnActivityIdSetListener(this);
}
@Override
public void onActivityIdSet(int activityId) {
// 在这里可以使用 Activity 的 ID
Log.d("MainActivity", "Activity ID: " + activityId);
}
}
```
3. 在非 `Activity` 类中定义一个成员变量,用于保存 `OnActivityIdSetListener` 对象,并在需要使用 `Activity` 的 ID 时,调用该对象的方法获取 `Activity` 的 ID。例如:
```java
public class NonActivityClass {
private OnActivityIdSetListener mOnActivityIdSetListener;
public void setOnActivityIdSetListener(OnActivityIdSetListener listener) {
mOnActivityIdSetListener = listener;
// 在这里获取 Activity 的 ID 并传递给 OnActivityIdSetListener 对象
if (mOnActivityIdSetListener != null) {
mOnActivityIdSetListener.onActivityIdSet(getActivityId());
}
}
private int getActivityId() {
Activity activity = (Activity) mOnActivityIdSetListener;
if (activity != null) {
return activity.hashCode();
}
return 0;
}
}
```
通过上述步骤,即可在非 `Activity` 类中获取 `Activity` 的 ID 并使用。需要注意的是,在使用 `Activity` 的 ID 时需要确保 `Activity` 已经创建完成,否则可能会出现空指针异常等问题。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)