2017-05-25 5 views
-1

Ich bin immer noch neu beim Lernen von Android und versuche, einen Swipestack mit der SwipeStack-Bibliothek zu implementieren. Wenn Sie den Code so verwenden, wie er auf GitHub erscheint, werden getLayoutInFlater und getActivity nicht aufgelöst. Wenn ich im Web lese, muss ich einen Kontext angeben, aber ich bin nicht sicher, wie ich das machen soll. Jede Hilfe wird großartig sein! Mein Code unten:Ich kann getLayoutInFlater nicht aufrufen, wenn ich SwipeStack verwende.

import ... 


public class RateActivity extends AppCompatActivity { 

} 

public class SwipeStackAdapter extends BaseAdapter { 

private List<String> mData; 

public SwipeStackAdapter(List<String> data) { 
    this.mData = data; 
} 

@Override 
public int getCount() { 
    return mData.size(); 
} 

@Override 
public String getItem(int position) { 
    return mData.get(position); 
} 

@Override 
public long getItemId(int position) { 
    return position; 
} 

@Override 
public View getView(final int position, View convertView, ViewGroup parent) { 
    convertView = getLayoutInflater().inflate(R.layout.card, parent, false); 
    TextView textViewCard = (TextView) convertView.findViewById(R.id.textViewCard); 
    textViewCard.setText(mData.get(position)); 

    return convertView; 
} 

}

+0

Geben Sie den Kontext innerhalb des Constractor: öffentlichen SwipeStackAdapter (List Daten, Kontext Kontext) { this.mData = Daten; this.context = Kontext; } –

Antwort

0

Wenn Sie SwipeStackAdapter aus einer Tätigkeit fordern, definieren, damit er einen Objektkontext empfängt und ruft „this“ in dem entsprechenden Feld übergeben. Andernfalls können Sie getActivity() oder getApplicationContext() an dieses Feld übergeben. Erstellen Sie dann im Adapter eine globale Variable namens context, und weisen Sie den Kontext, den Sie erhalten, dieser Variable zu.

Wenn Sie benötigen getLayoutInflater rufen Sie einfach verwenden context.getLayoutInflater();

Verwandte Themen