getIdentifier()
是 Android 中的一个方法,用于获取资源的 ID。它在不同的 View 中的用法略有不同,但基本概念是相同的。以下是在不同 View 中使用 getIdentifier()
方法的示例:
- 在 Activity 中使用:
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); int resourceId = getResources().getIdentifier("your_resource_name", "string", getPackageName()); String text = getResources().getString(resourceId); } }
- 在 Fragment 中使用:
public class MyFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_my, container, false); int resourceId = view.getResources().getIdentifier("your_resource_name", "string", getActivity().getPackageName()); String text = view.getResources().getString(resourceId); return view; } }
- 在自定义 View 中使用:
首先,确保你的自定义 View 类继承了相应的 View 类(例如 TextView
、Button
等),然后重写 getIdentifier()
方法。
public class CustomView extends TextView { public CustomView(Context context) { super(context); } public CustomView(Context context, AttributeSet attrs) { super(context, attrs); } public CustomView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override public int getIdentifier(String name, String type, String packageName) { return super.getIdentifier(name, type, packageName); } }
在其他地方使用自定义 View 时,你可以像使用普通 View 一样使用 getIdentifier()
方法。
CustomView customView = findViewById(R.id.custom_view); int resourceId = customView.getIdentifier("your_resource_name", "string", getPackageName()); String text = customView.getResources().getString(resourceId);
请注意,getIdentifier()
方法可能会返回 -1,如果没有找到相应的资源。因此,在使用返回的资源 ID 之前,请确保检查其值。