0

我有一个小查询,假设我们使用意图启动一个活动

startActivity(intent);

并打开一个新屏幕,其中包含内容,例如按钮和文本字段,我只需要知道是否可以获取有关布局及其内容的详细信息。

我认为这是不可能的,只是想得到一个适当的确认。

4

2 回答 2

1

不,这是不可能的。而且(来自评论)不,不可能从单独的Activity. 但是,您可以做的是:

// Calling code:
intent.putExtra(getPackageName() + ".click_me", R.id.your_button); // getPackageName() is for best practices
startActivity(intent);

// In your Activity:
Intent intent = getIntent(); // Get the Intent we used to launch this
int buttonToClick = intent.getIntExtra(getPackageName() + ".click_me", 0); // Get the integer
if (buttonToClick != 0) { // If it's 0, we didn't specify it
    View toClick = findViewById(buttonToClick); // Find the View
    if (toClick != null && toClick instanceof Button) { // If the View exists, and is a Button..
        ((Button) toClick).performClick(); // ..then click it
    }
}

您提供以整数Intent开头的。Activity该整数表示 a View(更具体地说,a Button)。一旦Activity接收到它,它就会找到匹配的View,检查它是否是 a Button,然后对其执行点击操作。

这样,您只需传递要单击的项目的整数 ID,而您打开Activity的只是处理其余部分。

于 2012-08-28T05:03:31.293 回答
0

您可以使用 getChildAt() 获取内容

for(int i=0; i<((ViewGroup)v).getChildCount(); ++i) {
    View nextChild = ((ViewGroup)v).getChildAt(i);
}
于 2012-08-28T05:01:01.827 回答