我的按钮向该功能发送参数。
<Button
android:id="@+id/tela1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Chinese Day"
android:onClick="loadPage"
android:tag="page1"
/>
我的函数应该使用此参数来加载page1活动。
public void loadPage(View view) {
String page = (String) view.getTag();
setContentView(R.layout.page);
}
如何使这项工作?
韩国社交协会
答案 0 :(得分:0)
您可以使用 Java反向API 。
每个活动都是R.layout
中的整数。您只需要在R.layout
中搜索属性,然后将其整数值推送到setContentView
。
try {
String tag = (String) btn.getTag(); // Button in variable "btn"
Class<R.layout> cls = R.layout.class;
Field field = cls.getDeclaredField(tag);
Integer obj = (Integer) field.get(null); // You could do these two in one line
int value = obj.intValue();
Log.i("Test", "Actvity id code = " + obj.toString()); // Testing code
setContentView(value);
}
catch (Exception e) {
e.printStackTrace();
return;
}
答案 1 :(得分:0)
您想在按钮的标签中指定布局的名称,对吗? 请尝试以下方法:
String page = (String) view.getTag();
int layoutId= getResources().getIdentifier(page, "layout", getPackageName());
setContentView(layoutId);
希望这有帮助。