2

ラジオ ボタンをクリックして通知を受け取る方法を学習しようとしていますが、アイテムListViewの横にあるラジオ ボタンをクリックしても何も返されません。ListView以下は、リスナーを設定するコードです。サーバーからデータを入力し、メインのアクティビティが extendsするonPostExecute()メソッドの下で、非同期タスクでこれを行っています。私が間違っていることを誰かが知っていますか?ListViewMapActivity

protected void onPostExecute(ArrayList<String> result) {
    // ... some code
    mapView.postInvalidate();

    final ArrayAdapter<String> arrayAdpt = new ArrayAdapter<String>(
            getApplicationContext(), android.R.layout.simple_list_item_single_choice,
            viewline);

    ListView restaurant_list = (ListView) findViewById(R.id.list);
    restaurant_list.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
    restaurant_list.setAdapter(arrayAdpt);
    restaurant_list.setScrollContainer(true);
    restaurant_list.setOnItemSelectedListener(new OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> parent, View arg1,
                int arg2, long arg3) {
            // TODO Auto-generated method stub
            Log.e("listargs", (String.valueOf(arg1)) + " " + String.valueOf(arg3));
        }

        @Override
        public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub
        }
    });
4

3 に答える 3

2

私が間違っていることを誰かが知っていますか?

OnItemSelectedListenerの代わりにOnItemClickListenerを使用することをお勧めします

list.setOnItemClickListener(new OnItemClickListener() {
   public void onItemClick(AdapterView<?> adapter, View parent,
                           int position, long id) {
      // do your stuff

   }                
});

OnItemClickListenerは通常、クリック イベントをキャッチする場合に使用されます。OnItemSelectedListenerは、通常 Spinner で使用される反対側にあります。

于 2013-03-12T16:59:45.437 に答える
1

ピントに問題があるようです。クリック リスナーは、他のビューにフォーカスがない場合にのみ機能します。

チェックボックスの xml を次のように変更します。

focusable="false"

またはfalse、レイアウトをコードで生成する場合は に設定します。

于 2013-03-12T17:03:53.713 に答える
0

OnItemSelectedListenerは、トラックパッド/トラックボールイベント用です

OnItemClickListenerはクリックイベント用です

個人的に私は常に安全のために両方を実装しています。

于 2013-03-12T17:10:26.220 に答える