Android 视图 layoutInflater 按字符串获取布局

Android View layoutInflater get Layout by string

提问人:xtrose Media Studio 提问时间:2/24/2021 更新时间:2/24/2021 访问量:45

问:

在 android 上使用动态字符串作为 id 获取带有 layoutInflater 的 View 时遇到问题。

此代码的工作原理:

LayoutInflater layoutInflater = (LayoutInflater) 
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View newView = layoutInflater.inflate(R.layout.my_layout, null);
scrollViewMain.removeAllViews();
scrollViewMain.addView(newView);

但是我想通过使用这样的字符串来动态获取视图:

String myString = "my_layout";
LayoutInflater layoutInflater = (LayoutInflater) 
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View newView = layoutInflater.inflate(R.layout.myString, null);
scrollViewMain.removeAllViews();
scrollViewMain.addView(newView);

感谢您帮助理解这一点。

Java Android 字符串 布局

评论


答:

0赞 Hussien Fahmy 2/24/2021 #1
String myString = "my_layout";

int layout_id= context.getResources().getIdentifier(
    myString,
    "layout",
    context.getPackageName()
);

LayoutInflater layoutInflater = (LayoutInflater) 
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View newView = layoutInflater.inflate(layout_id, null);
scrollViewMain.removeAllViews();
scrollViewMain.addView(newView);

评论

0赞 Hussien Fahmy 2/24/2021
不客气,为了能够让每个人都搜索相同的问题来找到答案,你能标记正确答案吗?