0

In meiner Anwendung habe ich meine benutzerdefinierte Ansicht mit Popupwindow aufblasen.Android Inflate-Liste für MultiAutoCompleteTextview (MultiAutocompleteTextview wird in Popup-Fenster)

Jetzt gibt es eine AutoCompleteTextview, die Vorschläge gibt.

Jetzt ist das Problem, dass, wenn ich anfange, Text innerhalb der AutoCompleteTextView zu tippen, die Anwendung abstürzt.

Fehlerprotokoll: -

Unable to add window -- token [email protected] is not valid; is your activity running? 

Die Frage kommend hier: -

@Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     ViewHolder vh; 
     View view = convertView; 
     if (view == null) { 
      if (inflater == null) 
       inflater = LayoutInflater.from(parent.getContext()); // ISSUE 
      view = inflater.inflate(R.layout.chips_adapter,parent, false); // ISSUE 
      vh = new ViewHolder(); 
      vh.tv = (TextView) view.findViewById(R.id.textView1); 

      view.setTag(vh); 
     } else { 
      vh = (ViewHolder) view.getTag(); 
     } 

     vh.tv.setText(suggestions.get(position).getTitle()); 

     return view; 
    } 

Ich denke Fehler ist ein Layout auf einem anderen aufgeblasenen Layout über Aufblasen.

+0

übergeben Sie den Kontext Ihrer Aktivität an den Adapter und verwenden Sie das gleiche Kontextobjekt. – SripadRaj

+0

@SripadRaj Versucht, Mainactivity-Kontext –

Antwort

0

In Ihrer Adapter Klasse:

erstellen Konstruktor mit Parametern des Kontextes.

Beispiel: (man denke Klassenname AdapterClass ist)

Class AdapterClass { 
    LayoutInflater inflater; 
    private Context context; 

    public AdapterClass(Context context){ 
     this.context = context; 
     inflater = LayoutInflater.from(this.context); 
    } 


    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     ViewHolder vh; 
     View view = convertView; 
     if (inflater == null){ 
      view = inflater.inflate(R.layout.chips_adapter,parent, false); 
      vh = new ViewHolder(); 
      vh.tv = (TextView) view.findViewById(R.id.textView1); 
      view.setTag(vh); 
     } else { 
      vh = (ViewHolder) view.getTag(); 
     } 

     vh.tv.setText(suggestions.get(position).getTitle()); 

     return view; 
    } 
} 

Hinweis: - Wenn Sie AdapterClass rufen Sie vergessen nicht Konstruktor mit Context als Parameter zu initialisieren.

+0

In Adapter-Initialisierung verwende ich meine MainActivity-Kontext. Aber es zeigt diesen Fehler –

+0

Haben MainActivity.this im Konstruktor übergeben? –

+0

Früher habe ich diesen obigen Code (wie von Ihnen erwähnt) verwendet, aber wegen desselben Fehlers habe ich versucht, parent.getContext() als Kontext zu verwenden. –