2016-07-25 8 views
1

Ich habe eine Anwendung lädt eine Listview basierend auf einer Datenbankabfrage. In jedem Listenansichtselement gibt es eine Textansicht und einige Schaltflächen. Also habe ich einen benutzerdefinierten Adapter erstellt. Mein Problem ist, dass ich versuche, einen Dialog erscheinen zu lassen, wenn ich auf eine Schaltfläche in der Listenansicht klicke, aber ich weiß nicht, wie ich den Fragmentmanager vom Listenansichtsadapter aufrufen soll.Make Dialogfeld erscheint nach ListView Element Schaltfläche klicken

DanceAdapter.java

@Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     // Get the data item for this position 
     final OneDancer oneDancer = getItem(position); 
     // Check if an existing view is being reused, otherwise inflate the view 
     if (convertView == null) { 
       //Sign-In Activity 
      if(type==1) { 


      }else if (type==2) 
      { 

       Log.v("DancerAdapter","item_dj_dancer Loaded"); 

      } 
      //VIP/Dances Adapter 
      else if(type==3) { 

       convertView = LayoutInflater.from(getContext()).inflate(R.layout.item_services, parent, false); 

       final Button button4 = (Button)convertView.findViewById(R.id.button4); 

       final TextView counterTextView = (TextView)convertView.findViewById(R.id.textView10); 

       final Button button6 = (Button)convertView.findViewById(R.id.button6); 



       button4.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View v) { 

         DialogFragment newFragment = new SignInActivity.ConfirmDancerDialog(); 
         newFragment.show(new getFragmentManager(), "Dancer Confirmed"); 

         button4.setVisibility(View.INVISIBLE); 
         button6.setVisibility(View.VISIBLE); 
         counterTextView.setVisibility(View.VISIBLE); 

        } 
       }); 




      } 

     } 

Hier ist der Code für das Verfahren in der Aktivität, die die Listenansicht auffüllt.

Dienstleistungen.

java
// Parsing of dancers 

public void parseDancerList(String response) { 

Log.v("SignInActivity","parseDancerList"); 
XMLParser parser = new XMLParser(); 

Document doc = parser.getDomElement(response); // getting DOM element 

NodeList nl = doc.getElementsByTagName("DANCERS"); 

DancerAdapter adapter = new DancerAdapter(this,oneDancerArrayList,3); 

Log.v("response ", "Dancer Count " + nl.getLength()); 
// looping through all item nodes <item> 
for (int i = 0; i < nl.getLength(); i++) { 
    // creating new HashMap 

    Element e = (Element) nl.item(i); 
    Log.v("response ", "Dancers " + parser.getValue(e, "NAME")); 

    OneDancer newDancer = new OneDancer(parser.getValue(e,"POSITION"), 
      parser.getValue(e,"NAME"), 
      parser.getValue(e,"AVAILABLE"), 
      null, 
      null, 
      null, 
      null, 
      null, 
      null); 

    adapter.addAll(newDancer); 
    listView.setAdapter(adapter); 
    adapter.notifyDataSetChanged(); 




} 

}

+0

mir verzeihen, aber ich habe irgendwie nicht voll bekommen, was Sie meinen, warum Sie für den Zugriff auf Fragment-Manager wollen ? Wenn Sie eine Instanz von "AlertDialog" benötigen, benötigen Sie nur einen Kontext, den Sie im Konstruktor Ihres Adapters übergeben können. –

+0

Verzeihen Sie meine ignorace. Ich habe Code aus einem anderen Bereich in meiner App bearbeitet, der einen Dialog anzeigt. Es wird jedoch direkt von der Aktivität aufgerufen. Kann mir ein Beispiel zeigen, was du meinst? – TWeeKeD

+0

np :), ich habe etwas hinzugefügt, überprüfen Sie es, ich hoffe es hilft –

Antwort

0

Okay, ich denke, es ist nur, dass Sie müde sind, dass Sie nicht erkennen, wie dies zu tun, Cuz es wirklich einfach ist, atleast, wenn ich nicht etwas fehlt und ich Ich bin nicht müde, xd. hier ist der Code:

in Tätigkeit:

DancerAdapter adapter = new DancerAdapter(this,oneDancerArrayList,3, getSupportFragmentManager()); 

in Ihrem DancerAdapter:

private static FragmentManager fragmentManager; 

public DancerAdapter(...,FragmentManager fragmentManager) { 
    ... 
    this.fragmentManager = fragmentManager;//now you have a reference to it 
} 
+0

Das war einfach. Vielen Dank! – TWeeKeD

+0

yw, wie ich sagte es war nur eine Frage der Müdigkeit, ich bin mir sicher, dass du es selbst wusstest :) –