Param按钮改变活动

时间:2011-11-22 11:09:31

标签: android button

我的按钮向该功能发送参数。

<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);
}

如何使这项工作?

韩国社交协会

2 个答案:

答案 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);    

希望这有帮助。