2016-04-20 4 views
0

abgerufen, das Schaltflächen für jede Listenansicht enthält. Wenn auf die Schaltfläche geklickt wird, muss ein Wert des entsprechenden Listenansichtselements abgerufen werden.Durch Klicken auf die Schaltfläche der Listenansicht wird nicht der entsprechende Textansichtswert des Listenansichtselementes

Folgendes ist meine getView-Methode.

@Override 
    public View getView(int position, View convertView, ViewGroup parent) { 

     view = convertView; 

     if (convertView == null) { 
      //inflate the view for each row of listview 
      if (imageLoader == null) 
       imageLoader = AppController.getInstance().getImageLoader(); 
      view = inflator.inflate(R.layout.pending_orders_fragment, null); 
      vholder = new ViewHolder(); 
      vholder.mShippngRefNo = (TextView) view.findViewById(R.id.shipment_ref_no_value); 
      vholder.contact = (ImageButton) view.findViewById(R.id.imageButton); 
      vholder.mShippingStatus.setTag(position); 

      view.setTag(vholder); 
     } else 
      vholder = (ViewHolder) view.getTag(); 

     PendingOrdersDao item = listforview.get(position); 


     vholder.mShippngRefNo.setText(item.getSipmentNo()); 
     vholder.contact.setOnClickListener(this.onClickListener); 

     return view; 
    } 

    public void setOnButtonClickListener(final View.OnClickListener onClickListener) { 
     this.onClickListener = onClickListener; 
    } 

Im Aufruf der Schaltfläche wie in meinem Code folgt ..

adapter.setOnButtonClickListener(new View.OnClickListener() { 
             @Override 
             public void onClick(View v) { 
              LinearLayout relativeLayout = (LinearLayout) v.getParent(); 
              TextView textView = (TextView) relativeLayout.findViewById(R.id.shipment_ref_no_value); 
              Toast.makeText(getActivity(),textView.getText().toString(),Toast.LENGTH_SHORT).show(); 

             } 
            }); 

Aber Im Null-Zeiger Ausnahme erhalten, während tun so.How kann ich das in Ordnung bringen?

Es folgt mein logcat

java.lang.NullPointerException bei com.vaighai.fragments.MyOrdersFragment $ 2 $ 1.onClick (MyOrdersFragment.java:253) bei android.view.View.performClick (Blick .java: 4475) bei android.view.View $ PerformClick.run (View.java:18786) bei android.os.Handler.handleCallback (Handler.java:730) bei android.os.Handler.dispatchMessage (Handler .java: 92) bei android.os.Looper.loop (Looper.java:176)

AKTUALISIERT Logcat:

FATAL AUSNAHME: Haupt java.lang.NullPointerException bei

com.vaighai.adapters.CustomAdapter $ 1.onClick (CustomAdapter.java:122) bei android.view.View.performClick (View.java:4475) bei android.view.View $ PerformClick.run (View.java:18786) bei android.os.Handler.handleCallback (Handler.java:73 0) bei android.os.Handler.dispatchMessage (Handler.java:92) bei android.os.Looper.loop (Looper.java:176) bei android.app.ActivityThread.main (ActivityThread.java:5419) bei java.lang.reflect.Method.invokeNative (Native Methode) bei java.lang.reflect.Method.invoke (Methode.java:525) bei com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit .java-: 1046) bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java:862) bei dalvik.system.NativeStart.main (native Methode)

+0

post your logcat – sasikumar

+0

Ich habe den Logcat – user1241241

+0

@ user1241241 können wir haben vollen Code Ihrer Adapter-Klasse mit Konstruktor. Kann sein, dass 'setOnClickListener (this.onClickListener);' ein Problem verursacht. –

Antwort

1

höchstwahrscheinlich vergessen Sie dies in Ihrer Tätigkeit

class MainAct extends Activity implements AdapterView.OnItemClickListener 
2

Sie direkt setOnClickListener einstellen.so entfernen Sie aus dem Code

vholder.contact.setOnClickListener(this.onClickListener); 

fügen Sie den folgenden Code

vholder.contact.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
     LinearLayout relativeLayout = (LinearLayout) v.getParent(); 
     TextView textView = (TextView) relativeLayout.findViewById(R.id.shipment_ref_no_value); 
     Toast.makeText(context,textView.getText().toString(),Toast.LENGTH_SHORT).show();} 
     }); 
+0

Wieder im gleichen NullPointerException – user1241241

+0

zeigen Sie Ihre volle logcat – sasikumar

+0

Ich habe die vollständige logcat – user1241241

1

gerade in Ihrem Toast Nachricht schreiben:

Toast.makeText(getActivity(),listforview.get((int)vholder.mShippingStatus.getTag()).getSipmentNo(),Toast.LENGTH_SHORT).show(); 

Und außerhalb Ihrer wenn und sonst innerhalb getView() -Methode schreiben :

vholder.mShippngRefNo.setTag(position); 
+0

Ich habe versucht, Tag zu setzen. Was soll ich auf onClick schreiben? – user1241241

+0

immer noch der gleiche Fehler – user1241241

+0

Haben Sie SetTag() Anweisung außerhalb von If und sonst geschrieben? weil das Setzen des Tags innerhalb, wenn der Block in getview nur ein Tag setzt, wenn convertview null ist. Also für alle Zeit Einstellung Tag schreiben Sie es außerhalb Ihrer if else Block wie: if (convertview == null) {} else {} vholder.mShippngRefNo.setTag (Position); –

Verwandte Themen