【问题标题】:How do i assign view in onCreate method in an activity android如何在活动android中的onCreate方法中分配视图
【发布时间】:2020-07-16 13:57:14
【问题描述】:

我有以下通过 View 的方法

private void doSomething(View view){ }

我遇到的问题是如何在 Activity 的 onCreate 方法中调用此视图,我将不得不传递视图

举例

View view;

doSomething(view)

如何分配视图/实例化视图,我正在使用 getView() 但它不起作用

喜欢

view = getView()

例如,在片段中 onViewCreatedMethod 有一个参数视图,我可以在调用它时将其分配给该方法。下面的例子

@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

    doSomething(view);
}   

是否可以在片段的 onCreate 方法中执行此操作,我可以在活动的 onCreate 方法中解析 View 参数

【问题讨论】:

  • 你想得到什么视图?活动视图(布局)?布局内的视图?
  • 您想为view 分配一些来自您的布局的视图吗?
  • 不使用getView(),在onCreate方法中你可以只使用findViewById(R.id.xxx)
  • @SebastienRieu 我已经编辑了问题以进一步解释
  • 首先,要问的正确问题是“在活动方法中您需要什么视图”? (1) 如果您需要设置布局的特定视图,例如带有 id textView 的 TextView,您可以通过“TextView tv = findViewById(R.id.textView)”获得此视图 (2) 如果您需要“活动”视图,我建议您为活动布局父视图设置一个 id,并在活动中获取它,如“View parent = findViewById(R.id.myActivityLayoutParentId)”,然后将此视图传递给您的 doSomething 方法。

标签: android view


【解决方案1】:

在您的 onCreate 方法中,一旦您调用了setContentView,您就可以使用findViewById 来获取您想要的任何视图。如果出于某种原因想要根视图,可以传递android.R.id.content

例如:

@Override
public void onCreate(Bundle savedInstanceState) {
    // Replace your_layout_id with your Activity layout ID
    setContentView(R.layout.your_layout_id);

    View rootView = findViewById(android.R.id.content);

    // Replace with whatever ID/View type you have in your code
    // Button and your_button_id are just examples
    Button button = findViewById(R.id.your_button_id); 
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    相关资源
    最近更新 更多