0

ListViewsの使い方を学んでいます。動作しましたが、誰かがアイテムをクリックしても応答できません。

setOnItemClickListenerメソッドを使用して、アイテムがクリックされたときにコールバックを取得しようとしています。しかし、メソッドsetOnItemClickListenerのエラーが原因で、コードがコンパイルされません。r現在、setOnItemClickListenerは引数OnItemClickListener()に適用できないというエラーが表示されます。

void SetUpList()
        {

             listView = (ListView) findViewById(R.id.mylist);
             String[] values = new String[] { "Android", "iPhone", "WindowsMobile"}; 
             EventsAdapter adapter = new EventsAdapter(this, cGlobals.eventsTitle);

             // Assign adapter to ListView
             listView.setAdapter(adapter); 

    // this is whare I get the error listView.setOnItemClickListener(new OnItemClickListener() {
                        public void onItemClick(AdapterView<?> parent, View view,
                                int position, long id) {
                            // When clicked, show a toast with the TextView text

                        }
                    });
            }
    }
4

1 に答える 1

1

まず、このクラスをインポートしたことを確認してください。

import android.widget.AdapterView.OnItemSelectedListener;

setOnItemClickListener()次に、次のように呼び出す必要があります。

listView.setOnItemClickListener(new OnItemClickListener() {
    @Override // "@Override" is required for Java 1.6, but forbidden in 1.5
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        // Do Something
    }
});

または、アクティビティが実装されている場合:メソッドの外部にメソッドOnItemClickListenerを追加する必要があります:onItemClick()onCreate()

@Override
public void onCreate(Bundle savedInstanceState) {
    // Do Something
}

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    // Do something else
}

(もちろん、ListActivityまたはListFragmentを拡張する場合は、2番目のアプローチonListItemClick()のようにオーバーライドする必要があります。)onItemClick()

于 2013-01-08T00:12:22.583 に答える