Wählen Sie das ListView-Element onClick in android

Was ist passiert, ich habe ein listview auf die ich setzen Hintergrundfarbe ändern auf Auswahl.Sowie standardmäßig bin ich legen Sie das erste listview-Element ausgewählt

public class OneWayFlightResult extends BaseAdapter {

private Activity activity;
private ArrayList<HashMap<String, String>> data;
private static LayoutInflater inflater=null;


public OneWayFlightResult(Activity a, ArrayList<HashMap<String, String>> d) {
    activity = a;
    data=d;
    inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

}

@Override
public int getCount() {
    //TODO Auto-generated method stub
    return data.size();
}

@Override
public Object getItem(int position) {
    //TODO Auto-generated method stub
     return position;
}

@Override
public long getItemId(int position) {
    //TODO Auto-generated method stub
    return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View vi=convertView;
    if(convertView==null)
        vi = inflater.inflate(R.layout.row, null);
    TextView flightTime = (TextView)vi.findViewById(R.id.flightTime); //title
    TextView flightCompanyName = (TextView)vi.findViewById(R.id.flightCompanyName); //title
    TextView flightNumber = (TextView)vi.findViewById(R.id.flightNumber); //title
    ImageView flightLogo = (ImageView)vi.findViewById(R.id.flightLogo);

    HashMap<String, String> flight = new HashMap<String, String>();
    flight = data.get(position);

    flightTime.setText(flight.get(TestActivity.FlightTime));
    flightCompanyName.setText(TestActivity.FlightCompanyName);
    flightNumber.setText(TestActivity.FlightNumber);

    if(position == 0){

        vi.setBackgroundResource(R.drawable.selection_effect);
        vi.setSelected(true);

    }
    return vi;
}

Dies ist die XML-Datei, die ich in diesem selection_effect.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_focused="true">
    <shape>
        <solid android:color="#ffffff" />
    </shape>
</item>
    <item>
    <shape>
        <solid android:color="#00a7eb" />
    </shape>
</item>
</selector>

Also standardmäßig die erste Liste anzeigen ausgewählt ist.Nun, wenn die Benutzer wählen Sie die anderen listview-Element das erste markiert bleibt und der andere bekam auch den gleichen Effekt.Wie also könnte sich ändern, die Auswirkungen auf klicken Sie auf das listview-Element dynamisch .Bedeutet standardmäßig erste Element wird ausgewählt, wenn der Benutzer auswählt, andere Artikel, andere ausgewählt, die Wirkung von dem Standardwert entfernt

  • mein Vorschlag war völlig falsch.
  • ich bearbeitet meine Antwort. Und Sie müssen, löschen Sie diese if(position == 0){ - und anderen Codes, die Sie verwendet haben, für die Auswahl. 🙂
  • sehen Sie, diese Frage ist sehr interessant und müssen u Vorschlag stackoverflow.com/questions/18571844/...
  • haben u gesehen, meine Frage zu kommentieren, dass das warten für u Antwort
  • Mögliche Duplikate von Wie lösche ich die ListView-Auswahl?
InformationsquelleAutor Developer | 2013-08-07
Schreibe einen Kommentar