Wie ändere ich in der Listenansicht jeweils nur eine Zeile?

Ich versuche, die Lösung für das folgende aufgelistete Problem zu finden. Ich habe einListview generiert mitSimpleadapter. Wenn ich in der Listenansicht auf eine Zeile klicke, möchte ich ein Layout mit einer ID erstellencolorful als sichtbar. Das kann ich. Aber hier beginnt mein Problem. Wenn ich auf eine andere Zeile mit der Nummer 5 klicke, wird das farbenfrohe Layout angezeigt, das Layout wird jedoch auch für die zuvor angeklickte Zeile angezeigt. Was ich tun möchte, ist, das Layout nur für die angeklickte Zeile farbig sichtbar zu machen (dh es sollte immer nur für eine Zeile sichtbar sein, dh es wird gerade auf die Zeile geklickt und für alle verbleibenden Zeilen ausgeblendet), und das Layout sollte für die nicht sichtbar werden zuvor angeklickte Zeilen. Ich habe versucht, mit zu tunviewholder aber es hilft nicht. Mein Code-Snippet ist unten. Führe mich Schritt für Schritt, da ich noch nicht mit Android vertraut bin.

           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=(TextVie,w)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();
                    }
            });

Antworten auf die Frage(2)

Ihre Antwort auf die Frage