gpt4 book ai didi

android - 使用 ButterKnife 访问导航标题元素

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:43:51 25 4
gpt4 key购买 nike

我有一个处理从 RecyclerView 中选择字符的类,一切正常,但我想用正确的信息更新 NavigationView header 中元素的文本。到目前为止,我一直在尝试使用 ButterKnife 来解决这个问题,但没有成功。但是,我已经能够以这种方式使其工作:

private ImageView mImageView;
private TextViewTitle mTextViewName;
private TextViewRegular mTextViewTitle;
private static View mHeaderView;

public void setHeaderView(View headerView) {
mHeaderView = headerView;
selectedCharacterInstance.setHeaderViewElements();
}

private void setHeaderViewElements() {
mImageView = mHeaderView.findViewById(R.id.selected_character_info1);
mTextViewName = mHeaderView.findViewById(R.id.selected_character_info2);
mTextViewTitle = mHeaderView.findViewById(R.id.selected_character_info3);
}

我从 MainActivity 传递 headerView。我不喜欢这种方法,但我可能是错的,因为我是 Android 编程的新手。这是正确的方法吗?有没有办法使用 ButterKnife 解决这个问题? (我尝试了 ButterKnife,但 ImageView 和 TextView 始终为空)

最佳答案

我还使用 Butter Knife 作为我的导航标题。对于页眉,我创建了一个 View 持有者:

protected static class HeaderViewHolder {

@BindView(R.id.user_name)
protected TextView mUserNameTxt;

@BindView(R.id.user_email)
protected TextView mUserEmailTxt;

HeaderViewHolder(View view) {
ButterKnife.bind(this, view);
}
}

然后在我的 Activity 的 onCreate 方法中:

View header = mNavigationView.getHeaderView(0);
mHeaderViewHolder = new HeaderViewHolder(header);

mHeaderViewHolder.mUserEmailTxt.setText(userEmail);

这让我可以像使用任何其他 RecyclerView holder 一样使用 mHeaderViewHolder

关于android - 使用 ButterKnife 访问导航标题元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49593446/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com