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();
}
}
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. –
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
np :), ich habe etwas hinzugefügt, überprüfen Sie es, ich hoffe es hilft –