码:
ListVIEw lvw = (ListVIEw) layout.findVIEwByID(R.ID.formats); formatAdapter adapter = new formatAdapter(act,arr); //act is context and arr is an array of String lvw.setAdapter(adapter); lvw.setonItemClickListener(new OnItemClickListener() { @OverrIDe public voID onItemClick(AdapterVIEw<?> arg0,VIEw arg1,int arg2,long arg3) { TextVIEw tev = (TextVIEw) arg1 .findVIEwByID(R.ID.formatN); linearLayout extraB = (linearLayout) arg1 .findVIEwByID(R.ID.extrabuttons); if (extraB.getVisibility() == VIEw.GONE) { extraB.setVisibility(VIEw.VISIBLE); tev.setEnabled(false); } else { extraB.setVisibility(VIEw.GONE); tev.setEnabled(true); } } });
formatAdapter.java
public class formatAdapter extends BaseAdapter {LayoutInflater Inflater;Context con;String[] names;public formatAdapter(Context c,String[] s) { con = c; names = s; Inflater = (LayoutInflater) con .getSystemService(Context.LAYOUT_INFLATER_SERVICE);}@OverrIDepublic int getCount() { return names.length;}@OverrIDepublic Object getItem(int arg0) { return null;}@OverrIDepublic long getItemID(int arg0) { return 0;}@OverrIDepublic VIEw getVIEw(int arg0,VIEwGroup arg2) { VIEw v1 = arg1; v1 = Inflater.inflate(R.layout.adapter_formats,null); TextVIEw tv = (TextVIEw) v1.findVIEwByID(R.ID.formatN); tv.setText(names[arg0]); return v1;}}
adapter_formats.xml
<?xml version="1.0" enCoding="utf-8"?><FrameLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"androID:layout_wIDth="match_parent"androID:layout_height="match_parent" ><TextVIEw androID:ID="@+ID/formatN" androID:layout_wIDth="fill_parent" androID:layout_height="wrap_content" androID:padding="10dp" /><linearLayout androID:ID="@+ID/extrabuttons" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:layout_gravity="center_horizontal" androID:orIEntation="horizontal" androID:visibility="gone"> <ImageVIEw androID:ID="@+ID/play" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:contentDescription="@string/cD" androID:src="@drawable/img_29" /> <VIEw androID:layout_wIDth="50dp" androID:layout_height="0dp" androID:contentDescription="@string/cD" /> <ImageVIEw androID:ID="@+ID/download" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:src="@drawable/img_31" /></linearLayout></FrameLayout>
现在,我希望如果对于任何元素,linearLayout是可见的,如果我点击其他元素,那么元素linearLayout就会消失,TextVIEw会启用(默认布局).让我用例子解释:如果我克隆了第一个元素,它的linearLayout就可见了.我希望如果我点击第二个元素,第一个元素的线性布局会自动消失.我试着解释得很好,但对不起,如果我无法解释好.谁能帮我这个?
解决方法 刚找到一种方法来做到这一点,我觉得很棒:)虽然这种方式不是真的:P为了隐藏其他列表的视图,我在我的类中全局访问了一个视图并将其初始化为null(视图是我要隐藏的同一个类,例如,这里我想使前一个列表元素的线性布局消失,所以我采取了全局线性布局).然后在每个onItemClickListener中,我将以下代码放在开头:
if(myGlobalVIEw!=null) { myGlobalVIEw.hIDe(); }
此外,当我使其他列表元素的视图可见时,我通过以下代码将该视图分配给我的全局视图:
myGlobalVIEw = myCurrentVIEw;
希望它能帮到别人:)
总结以上是内存溢出为你收集整理的android – 从某个元素访问ListView的其他元素的视图全部内容,希望文章能够帮你解决android – 从某个元素访问ListView的其他元素的视图所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)