gpt4 book ai didi

java - Android:如何获取列表 fragment 中的 View

转载 作者:行者123 更新时间:2023-12-01 05:04:21 25 4
gpt4 key购买 nike

您好,我想使用此代码,它在 onclick 方法中工作,因为(查看 v)但我如何在 Activity 中的其他地方使用此代码?

这是代码

        ListView list= getListView();
int position = list.getPositionForView(v);
switch (position) {
case 1:
ImageView arrow = (ImageView) getView().findViewById(R.id.arrow);
arrow.setVisibility(View.VISIBLE);
break;

default:
break;
}

那么在这种情况下如何获取 View v 呢?

提前致谢!

最佳答案

我也遇到了同样的问题。我不确定这种方法是最好的方法,但对我来说效果很好。创建所有 View 后,创建监听器 onLayoutChangeListener 并将您想要为项目 View 实现的逻辑放在您想要的特定位置。

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {

setOnLayoutChangeListener(getListView());

super.onViewCreated(view, savedInstanceState);
}


private void setOnLayoutChangeListener(final ListView listview) {
if (listview != null) {
listview.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {

@Override
public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {

changeFirstListItemView(listview);

}
});
}
}

private void changeFirstListItemView(final ListView listview) {
if (listview != null) {
try {
int listFirstPosition = 1;
View view = listview.getChildAt(listFirstPosition);

if (view != null) {
setHiddenViewVisible(view);
}

} catch (Exception e) {
// Print some debug info.
String msg = "An error occurred while trying to set onFocusChange listener.";
Log.e(TAG, msg, e);
}
}
}

private void setHiddenButtonVisible(View listItem) {
Button button = null;
try {
buttonId = R.id.listButton;
button = (Button) listItem.findViewById(buttonId);
} catch (Resources.NotFoundException nfe) {
// Print some debug info.
}

if (button != null) {
button.setVisibility(View.VISIBLE);
// Optional, add here button listener, or something else...
}
}

关于java - Android:如何获取列表 fragment 中的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12933440/

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