-1

J'ai une popup implémentée dans une Activity, et j'essaye d'y ajouter onclicklistener, mais il montre une erreur "Essayer d'invoquer la méthode virtuelle sur un objet nul référence ", mais j'ai vérifié l'id de l'edittext, qui est" date_from "dans popupdashboard.xml, ai-je manqué quelque chose, ai-je besoin d'ajouter une référence pour popdashboard.xml quelque part ??Impossible de définir Onclicklistener sur un editext présent dans une popup

public class DashboardActivity2 extends AppCompatActivity implements View.OnClickListener { 
ImageView image; 
    EditText datefrom,dateto; 
    TextView amo_today,amo_yest,increase,percent; 


    private PopupWindow active; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_dashboard2); 
     datefrom = (EditText)findViewById(R.id.date_from); 
     datefrom.setOnClickListener(this); 
     dateto = (EditText)findViewById(R.id.date_to); 
     dateto.setOnClickListener(this); 

toute aide serait appréciée

+0

pouvez-vous ajouter votre Popcode dans votre activité –

+0

Peut-être parce que 'date_from' est pas' activity_dashboard2' mise en page. Cochez cette case http://stackoverflow.com/questions/28193552/null-pointer-exception-on-setonclicklistener – jayeshsolanki93

+0

gonfler le popupdashboard.xml pour voir et à partir de laquelle vous obtenez la référence de edittext – Nidhin

Répondre

1

Ci-dessous le code contiennent la configuration pour montrer la fenêtre popup

active = new PopupWindow(ctx); 
    inflater = (LayoutInflater) ctx 
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    layout = R.layout.popupdashboard; 
    contentView = inflater.inflate(layout, null); 
     datefrom = (EditText) contentView.findViewById(R.id.date_from); 
    active.setHeight(LayoutParams.WRAP_CONTENT); 
     active.setWidth(LayoutParams.WRAP_CONTENT); 
    active.setContentView(contentView); 
    active.showAtLocation(anchor, Gravity.NO_GRAVITY, position_x, 
       position_y); 
+0

Votre réponse m'a donné un aperçu, j'ai tapé layoutinflater, view et viewgroup et utilisé la vue à l'intérieur d'un événement de clic, et tout semble bien maintenant, merci beaucoup pour votre aide – Venky

1

Si votre texte d'édition se trouve dans une fenêtre pop-up, alors vous devriez obtenir son point de vue en utilisant le contexte contextuel. Vous pouvez faire la même chose comme suit: S'il vous plaît noter que, avant d'utiliser active pour trouver une autre vue, vous d'abord obtenir sa vue en utilisant le contexte d'activité.

// active = (PopupWindow)findViewById(R.id.active) // active is id of your popup in xml 
datefrom = (EditText)active.findViewById(R.id.date_from); 
dateto = (EditText)active.findViewById(R.id.date_to); 
+0

Dois-je le définir dans la méthode Oncreate ?? – Venky

+0

oui, onCreate méthode d'activité –

+0

je ai casted layoutinflater, vue et viewgroup en dehors oncreate et utilisé la vue à l'intérieur d'un événement de clic, et tout semble bien maintenant, merci beaucoup pour votre aide – Venky