我有一个 ListView ,并希望将焦点设置在所选项目上。 ListView 每行包含3个 TextView 。我希望两个 LinearLayout 在选择一个项目时可见。
我已经尝试过:
mListView.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus) {
((LinearLayout) findViewById(R.id.ll_btn_manipulation_lv)).setVisibility(View.VISIBLE);
((LinearLayout) findViewById(R.id.ll_tv_username)).setVisibility(View.VISIBLE);
}
}
});
但是它不起作用。因此,我尝试在 setOnFocusChangeListener 之前添加以下代码:
mListView.setItemsCanFocus(true);
它也不起作用。
所以我试图做到这一点:(它也不起作用)
for(int i = 0 ; i < mListView.getChildCount() ; ++i) {
TextView tv1 = (TextView) mListView.findViewById(R.id.textView1);
TextView tv2 = (TextView) mListView.findViewById(R.id.textView2);
TextView tv3 = (TextView) mListView.findViewById(R.id.textView3);
View.OnFocusChangeListener ofcl = new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus) {
((LinearLayout) findViewById(R.id.ll_btn_manipulation_lv)).setVisibility(View.VISIBLE);
((LinearLayout) findViewById(R.id.ll_tv_username)).setVisibility(View.VISIBLE);
}
}
};
tv1.setOnFocusChangeListener(ofcl);
tv2.setOnFocusChangeListener(ofcl);
tv3.setOnFocusChangeListener(ofcl);
}
所以我的目的是在单击一个项目后使两个 LinearLayout 可见。
你有什么主意吗?谢谢