2

だから、これは簡単な質問かもしれませんし、私はここで完全に何かをしているかもしれませんが、ここに私が持っているものがあります:

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
}

私がやりたいことは次のとおりです。誰かがボタンをクリックすると、リストビューから情報が取得され、選択されたラジオ オプションに従って共有設定が更新されます。

私が問題を抱えているのは、現在選択されているアイテムのインデックスを取得することです。その情報を取得する最良の方法は何ですか? 単一選択リストを完全に間違って実装していますか?

ありがとう!

4

1 に答える 1

2

arg2リスト内の位置です。

余分な(不要な)処理を行っているようです。 arg1は行ビューであり、android.R.layout.simple_list_item_single_choiceレイアウトには のみが含まれてCheckedTextViewいるため、それを探すことなく直接使用できます。

CheckedTextView cv = (CheckedTextView) arg1;
于 2012-07-03T04:25:37.300 に答える