2017-03-25 3 views
0

Ich versuche, Popup auf Bild klicken Sie auf Listener und aus diesem Popup möchte ich Wert holen, aber ich bekomme keinen Wert von Popup. Ich rufe Itemcliclistner von Klick-Listener, aber es funktioniert nicht.Mein OnItemclicklistner funktioniert nicht

Dies ist mein Code:

public void onClick(View view) 
    { 
     if(view.getId()==R.id.imgv_search) 
     { 
      LayoutInflater inflator = (LayoutInflater)Home.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     View show_menu_popup = inflator.inflate(R.layout.popup_list, null); 
     ListView listv_problems = (ListView) show_menu_popup.findViewById(R.id.listv_problems); 
     AdapterCity city = new AdapterCity(Home.this,al_cityid,al_cityname); 
     listv_problems.setAdapter(city); 
     Dialog dialog_menus = new Dialog(Home.this); 
     dialog_menus.setTitle("Select city : "); 
     dialog_menus.setContentView(show_menu_popup); 
     dialog_menus.show(); 
     listv_problems.setOnItemClickListener(this); 
     //Toast.makeText(Home.this,"City is changed : "+edt_city_name.getText(),Toast.LENGTH_SHORT).show(); 
    } 


} 

Und das ist mein OnItemclickListener:

public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) 
{ 

    if(adapterView.getId()== R.id.listv_problems) 
    { 
     //TextView cityid= (TextView)adapterView.findViewById(R.id.cityid); 
     //String city_id= cityid.getText().toString(); 
     Toast.makeText(Home.this,"You click popup",Toast.LENGTH_LONG); 

    } 


} 
+0

ist 'Dialog' wird geöffnet? –

+0

wird Toast angezeigt? –

+0

müssen Sie diese Zeilen wechseln: 'dialog_menus.show();' und 'listv_problems.setOnItemClickListener (this);'. Weil die show-Methode synchron ist, so dass sie nur zurückkehrt ** nachdem ** das Popup geschlossen ist ... und daher noch kein Listener registriert ist –

Antwort

0

Sie verwenden können ...

public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) { 

    al_citynames.get(position); 
    //this will give you the value of city 
    Toast.makeText(Home.this,"You click popup",Toast.LENGTH_LONG); 

} 

Oder Sie view.getitembyposition() innerhalb onItemClick();

verwenden können
+0

Es zeigt nicht Toast. – Abhijeet

+0

Haben Sie versucht, onclick in Ihrem Adapter zu setzen ... Vielleicht funktioniert das –