2 Stimmen

Get Simple List Item Single Choice - Get Selected Item

Vielleicht ist das eine einfache Frage, oder ich habe mich verrannt, aber ich habe Folgendes:

public class SetPrefsActivity extends ListActivity{
@Override
public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.radiolist);
    ArrayList<Hall> listItems = new ArrayList<Hall>();
    ArrayAdapter<Hall> ar = new ArrayAdapter<Hall>(this, android.R.layout.simple_list_item_single_choice, listItems);
    setListAdapter(ar);
    ListView lv = getListView();
    lv.setTextFilterEnabled(true);

    lv.setOnItemClickListener(new OnItemClickListener()
    {
    boolean somethingChecked = false;
    int lastChecked;
       public void onItemClick(AdapterView arg0, View arg1, int arg2,
         long arg3) {
           if(somethingChecked){
               ListView lv = (ListView) arg0;
               TextView tv = (TextView) lv.getChildAt(lastChecked);
               CheckedTextView cv = (CheckedTextView) tv;
               cv.setChecked(false);
           }
           ListView lv = (ListView) arg0;
           TextView tv = (TextView) lv.getChildAt(arg2);
           CheckedTextView cv = (CheckedTextView) tv;
           if(!cv.isChecked())
           cv.setChecked(true);
           lastChecked = arg2;
           somethingChecked=true;
       }
    });
    new LoadListTask().execute(); //This loads Items into the List

    Button b = (Button) findViewById(R.id.savePrefBtn);
    b.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            //IF SOMETHING IS SELECTED,
            //THEN UPDATE SHARED PREFERENCES

            Intent i = new Intent(SetPrefsActivity.this, SomeOtherActivity.class);
            startActivity(i);
            }

        }
    });
}
//other stuff to fill the arrayAdapter
}

Was ich tun möchte, ist: Wenn jemand auf die Schaltfläche klickt, werden Informationen aus der Listenansicht abgerufen und eine gemeinsame Einstellung entsprechend der ausgewählten Radiooption aktualisiert.

Ich habe Probleme damit, den Index des aktuell ausgewählten Elements abzurufen. Wie kann ich diese Information am besten abrufen? Habe ich die Auswahlliste völlig falsch implementiert?

Ich danke Ihnen!

2voto

Barak Punkte 16300

arg2 ist die Position in Ihrer Liste.

Es sieht so aus, als würden Sie einige zusätzliche (unnötige) Verarbeitungen vornehmen. arg1 ist Ihre Zeilenansicht, und da die android.R.layout.simple_list_item_single_choice Layout enthält nur eine CheckedTextView können Sie diese direkt verwenden, ohne sie suchen zu müssen.

CheckedTextView cv = (CheckedTextView) arg1;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X