2016-08-05 14 views
0

Ich möchte eine ListView mit TextView und Schaltfläche erstellen. Wenn ich auf die Schaltfläche "Element" drücke, wird TextView aktualisiert und andere Textansichten werden nicht aktualisiert. sollte es nur die textview auf den item mit der taste ich geklickt ändern. andere Textansichten auch aktualisieren, wenn ich innerhalb der Listenansicht scrollenZähler in TextView in ListView

Auf andere Weise möchte ich MediaPlayer erstellen und die Zeit für jeden Song behandeln. Ich habe viele Wege ausprobiert, keiner von ihnen hat funktioniert. Einige von ihnen aktualisieren zufällige Texte, andere aktualisieren andere Texte, wenn ich scrolle. Ich habe auch einen anderen Weg mit Notifydata jedes Update (jede Sekunde) versucht, aber es verhindert, dass ich auf andere Tasten (es hängt).

Das ist mein Adapter:

  import java.util.ArrayList; 
      import android.annotation.SuppressLint; 
      import android.content.Context; 
      import android.os.Handler; 
      import android.view.LayoutInflater; 
      import android.view.View; 
      import android.view.ViewGroup; 
      import android.widget.BaseAdapter; 
      import android.widget.ImageView; 
      import android.widget.TextView; 
      import android.view.View.OnClickListener; 

      public class Adapter_G extends BaseAdapter { 
       private static ArrayList<Cool_Item_G> itemDetailsrrayList; 
       private Handler durationHandler; 
       private LayoutInflater l_Inflater; 
       Context context2; 
       TextView texts; 
       int cn = 0; 

       public Adapter_G(Context context, ArrayList<Cool_Item_G> results) { 
        itemDetailsrrayList = results; 
        l_Inflater = LayoutInflater.from(context); 
        context2 = context; 
        durationHandler = new Handler(); 

       } 

       public int getCount() { 

        try { 
         return itemDetailsrrayList.size(); 
        } catch (Exception e) { 
         return 0; 
        } 
       } 

       public Object getItem(int position) { 
        return itemDetailsrrayList.get(position); 
       } 

       public long getItemId(int position) { 
        return position; 
       } 

       public View getView(final int position, View convertView, ViewGroup parent) { 
        final ViewHolder holder; 

        if (convertView == null) { 
         convertView = l_Inflater.inflate(R.layout.zerk_item, null); 
         holder = new ViewHolder(); 
         holder.go = (ImageView) convertView.findViewById(R.id.go); 
         holder.cool = (TextView) convertView.findViewById(R.id.Cool); 

         convertView.setTag(holder); 
        } else { 
         holder = (ViewHolder) convertView.getTag(); 
        } 

        holder.Cool.setText("" + itemDetailsrrayList.get(position).z); 

        holder.go.setOnClickListener(new OnClickListener() { 

         @Override 
         public void onClick(View v) { 
          goNow(position, holder.Cool); 
         } 
        }); 

        return convertView; 
       } 

       static class ViewHolder { 
        TextView cool; 
        ImageView go; 

       } 

       Handler m_handler; 
       int zs = 0; 
       Runnable m_handlerTask = null; 

       public void goNow(final int position, final TextView text) { 

        m_handler = new Handler(); 
        m_handlerTask = new Runnable() { 
         @Override 
         public void run() { 

          text.setText("" + zs); 
          zs++; 
          m_handler.postDelayed(m_handlerTask, 1000); 

         } 
        }; 
        m_handlerTask.run(); 

       } 
      } 
+0

Willkommen zu ändern! Ich habe deine Frage bearbeitet. Ich denke jedoch, dass es noch ein wenig unklar ist. Wenn du auf den Gegenstandstaste drückst, beginnt das TextView zu aktualisieren - soll das ** passieren ** oder was passiert jetzt? Ich schlage vor, dass Sie das in Ihre Frage einarbeiten. Je besser Menschen das Problem verstehen, desto besser ist Ihre Chance auf eine gute Antwort. Viel Glück und genießen Sie Ihren Aufenthalt auf Stack Overflow! –

+0

fertig mann kannst du mir bitte helfen? –

+1

irgendein Fehler ?? Wenn ja, dann LOGCAT setzen –

Antwort

1

Versuchen Sie, Stack-Überlauf dieses

text.setText("" + zs); 
zs++; 

zu

itemDetailsrrayList.get(position).z += itemDetailsrrayList.get(position).z; 
notifyDataSetChanged(); 
+0

es funktioniert gut Mann ich habe es versucht, aber es verhindert, dass ich auf die Taste erneut drücken, weil es notifyDataSet für immer Sie verstehen und der Benutzer möchte vielleicht andere Element drücken? –

+0

Können Sie versuchen, eine Schnittstelle wie 'OnClickListener' zu erstellen, wo Sie Adapter erstellen. Übergeben Sie die Schnittstelle über den Adapterkonstruktor. Wenn der Benutzer auf die Schaltfläche Call Interface klickt und Prozesse in der Interface-Methode aktualisiert. – faranjit

+0

Ich kann nicht verstehen, sorry :(können Sie Demo für das –

Verwandte Themen