2
getSherlockActivity().findViewById(android.R.id.list);
new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView <? > arg0, View arg1, int position,
        long id) {
        // TODO Auto-generated method stub
        Toast.makeText(getSherlockActivity(), 
             "You selected :", Toast.LENGTH_SHORT).show();
    }
};

アクティビティにイベント リスナーを追加しようとしていますが、トースト メッセージがまったく表示されません。onCreateViewメソッドからこのコードを呼び出しています

4

5 に答える 5

4

リストに実際にクリックリスナーを設定しているようには見えません。作成しているだけで、参照を保持していません。

このようにしてみてください:

ListView lv = (ListView)(getSherlockActivity().findViewById(android.R.id.list));
lv.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView <? > arg0, View arg1, int position,
        long id) {
        // TODO Auto-generated method stub
        Toast.makeText(getSherlockActivity(), 
             "You selected :", Toast.LENGTH_SHORT).show();
    }
});
于 2013-04-08T13:36:35.903 に答える
2
getSherlockActivity().findViewById(android.R.id.list).setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView <? > arg0, View arg1, int position,
    long id) {
    // TODO Auto-generated method stub
    Toast.makeText(getSherlockActivity(), 
         "You selected :", Toast.LENGTH_SHORT).show();
}});

編集済み

((ListView)getSherlockActivity()).findViewById(android.R.id.list).setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView <? > arg0, View arg1, int position,
    long id) {
    // TODO Auto-generated method stub
    Toast.makeText(getSherlockActivity(), 
         "You selected :", Toast.LENGTH_SHORT).show();
}});

この行を onCreate() 内に追加します。

于 2013-04-08T13:36:46.953 に答える
1

何も追加していません。あなたがしたことはfindViewById()何の目的もありませんでした(戻り値を使用しなかったためです。またOnItemClickListener、それも使用しないため、理由もなく new を作成しました。いいえ、2行のコードを隣り合わせに配置しても、自動的に作成されません何らかの形でやり取り...

正しいアプローチは次のとおりです。

ListView v = (ListView)getSherlockActivity().findViewById(android.R.id.list);
v.setOnItemClickListener( new OnItemClickListener() {
  ...
  ...
于 2013-04-08T13:36:10.727 に答える
1

追加のみ

ListView lv = (ListView)getSherlockActivity().findViewById(android.R.id.list);
lv.setOnItemClickListener(this);

 @Override
    public void onItemClick(AdapterView <? > arg0, View arg1, int position,
        long id) {

}

およびアクティビティは実装する必要がありますOnItemClickListener

また

ListView lv = (ListView)getSherlockActivity().findViewById(android.R.id.list);
lv.setOnItemClickListener( new OnItemClickListener() {
 @Override
    public void onItemClick(AdapterView <? > arg0, View arg1, int position,
        long id) {

}
于 2013-04-08T13:40:06.483 に答える
1

数週間前、同じ状況を見つけました。Sherlock は使用しませんでしたが、次の行を設定すると役立つ場合があります。

listView.setItemsCanFocus(false);

また、行アイテムの任意のボタンに clickable false を設定してください。

于 2013-04-08T13:43:09.517 に答える