0

から拡張しListActivityて実装するクラスがありますOnItemClickListener

これは非常に単純なテスト クラスです。リストの項目を選択すると、選択した項目がToast.

エミュレーターでリストを正常に表示でき、項目をクリックしたときの効果も確認できますが、何も起こりません。

LogCatに何も表示されないため、イベントが発生しているとは思いません。コードは次のとおりです。

public class CarsListActivity extends ListActivity implements
        OnItemClickListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setListAdapter(new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, listCars()));
    }

    private List<String> listCars() {   
        return Arrays.asList("Ferrari", "Lamborghini", "Porsche");
    }

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        TextView textView = (TextView) view;
        String message = "Selected car: " + textView.getText();
        Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
    }

}

は、ファイルActivitiy上で次のように定義されています。AndroidManifest.xml

<activity android:name=".CarsListActivity" />

足りないものはありますか?

このエラーを調査したところ、これはレイアウト上のクリック可能性とフォーカス可能性属性に関係しているという多くの解決策が見つかりました。しかし、私はAndroid独自のものを使用しているandroid.R.layout.simple_list_item_1ので、どうすれば修正できるか本当にわかりません。

いくつかの構成がありませんか?

4

3 に答える 3

5

次のように OnItemClickListener (アクティビティ) を登録する必要があります。

getListView().setOnItemClickListener(this)

OnItemClickListener インターフェイスを実装するだけでは不十分

于 2013-06-27T12:27:15.520 に答える
-1

これを使うoncreate()

getListView().setOnItemClickListener(this);
于 2014-06-17T07:12:45.123 に答える