OK, quindi ho una lista (che è anche una finestra di dialogo dei frammenti) che visualizza gli amici di un utente e ogni elemento in quell'elenco ha un pulsante (etichettati gli amici nella foto) e quando gli utenti fanno clic su quell'id del pulsante per visualizzare un'altra finestra di dialogo che mostra tutte le opzioni per interagire con quell'utente (richiesta di amicizia, blocco, invio di messaggi privati ecc ...) il problema è che questo pulsante e il listener onClick è attualmente implementato tramite l'override del mio metodo listView per gli adattatori listview e per creare un frammentDialog richiede l'accesso al gestore dei frammenti. C'è un modo per farlo funzionare?Avvia un frammento di finestra di dialogo sul pulsante clic da un adattatore di base personalizzato> getView [IMG INCLUSO]
MODIFICA: Non posso inviare il codice effettivo dal progetto, ma sono collegato a un adattatore di base semplificato w. onClickListener che dovrebbe chiarire cosa sto cercando di fare. Non riesco ad accedere al fragmentManager da una classe di adattatori di base per rendere la finestra frammento possibile
LazyAdapter.java
package com.example.androidhive;
import java.util.ArrayList;
import java.util.HashMap;
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class LazyAdapter extends BaseAdapter {
private Activity activity;
private ArrayList<HashMap<String, String>> data;
private static LayoutInflater inflater=null;
public ImageLoader imageLoader;
public LazyAdapter(Activity a, ArrayList<HashMap<String, String>> d) {
activity = a;
data=d;
inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
imageLoader=new ImageLoader(activity.getApplicationContext());
}
public int getCount() {
return data.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
View vi=convertView;
if(convertView==null)
vi = inflater.inflate(R.layout.list_row, null);
Button requestBtn = (Button)vi.findViewById(R.id.title); // title
HashMap<String, String> song = new HashMap<String, String>();
song = data.get(position);
// Setting all values in listview
title.setText(song.get(CustomizedListView.KEY_TITLE));
artist.setText(song.get(CustomizedListView.KEY_ARTIST));
duration.setText(song.get(CustomizedListView.KEY_DURATION));
imageLoader.DisplayImage(song.get(CustomizedListView.KEY_THUMB_URL), thumb_image);
requestBtn.setOnClickListener(new myOnClickListener(position));
return vi;
}
public class myOnClickListener implements OnClickListener{
private int position;
private String clicked_uid;
public myOnClickListener(int position){
this.position=position;
}
@Override
public void onClick(View v) {
//THIS IS WHERE IM TRYING TO PUT THE FRAGMENT DIALOG
FragmentManager fm = TabHostFragmentActivity.this.getSupportFragmentManager();
FriendsFamiliarsDialog friendsDialog = new FriendsFamiliarsDialog().newInstance(TabHostFragmentActivity.profile_uid,"friends");
friendsDialog.show(fm, "friendsdialog");
}
}
}
Puoi postare qualche codice rilevante – TronicZomB
Pubblica il tuo codice classe adattatore. – GrIsHu
L'avvio di 'DialogFragment's in un' DialogFragment' suona disordinato. Invece di usare 'DialogFragment's, usa' Activity's a tema di dialogo. –