【发布时间】:2014-05-16 00:02:50
【问题描述】:
我正在尝试找出以下所列问题的解决方案。我有一个使用Simpleadapter 生成的Listview。当我单击列表视图中的一行时,我想创建一个 id colorful 的布局可见。我能够做到这一点。但我的问题从这里开始。当我点击另一行说第 5 行时,彩色布局是可见的,但之前点击的行的布局也是可见的。我想要做的是使布局彩色仅对单击的行可见(即一次应该只对一行可见,即当前单击的行并隐藏所有剩余的行),并且布局应该变得不可见以前单击的行。我尝试使用viewholder,但它没有帮助。我的代码 sn-p 如下。一步一步指导我,因为我对 Android 还很陌生。
final BaseAdapter k=new SimpleAdapter(getActivity(),val,R.layout.mytaskdata,new String[]{"sname","heading","desc","id","path","receiver","sender"},new int[]{R.id.textView1,R.id.textView2,R.id.textView3,R.id.hide1,R.id.hide2,R.id.hide3,R.id.hide4})
{
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
final View v = super.getView(position, convertView, parent);
TextView myname=(TextView)v.findViewById(R.id.textView1);
TextView mydes=(TextView)v.findViewById(R.id.textView2);
TextView mytopic=(TextView)v.findViewById(R.id.textView3);
ImageView edit=(ImageView)v.findViewById(R.id.ImageView03);
sent.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
RelativeLayout r=(RelativeLayout)arg1.findViewById(R.id.colorful);
// r.setVisibility(arg1.VISIBLE);
int temp=sent.getCheckedItemPosition();
Log.i("itemposition",""+temp);
Toast.makeText(getActivity(),"pos"+arg2+"hii"+positionThatSaysHi,1000).show();
if(arg2!=positionThatSaysHi)
{
r.setVisibility(arg1.VISIBLE);
positionThatSaysHi = arg2;
notifyDataSetChanged();
}
else
{
r.setVisibility(arg1.GONE);
notifyDataSetChanged();
}
});
【问题讨论】:
标签: android listview simpleadapter