1

カスタムセルアダプターを使用してフラグメントにリストがありますが、

問題は、onItemSelected が応答しないことです。

これを修正する方法を教えてください。

public class PhoneMenuList extends SherlockFragment implements OnItemSelectedListener {

Fragment newContent = null;
ListView productList;

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ 
    View mView = inflater.inflate(R.layout.list, container, false);
    return mView; 
}

@Override
public void onActivityCreated(Bundle savedInstanceState){
    super.onActivityCreated(savedInstanceState);

    //SET THE LIST ADAPTER!
    Hamburger hambu_data[] = new Hamburger[] {
                new Hamburger(R.drawable.icon_hambu_folder, "My Documents"),
                new Hamburger(R.drawable.icon_hambu_favs, "Top 10 viewed"),
                new Hamburger(R.drawable.icon_hambu_validate, "Validate Document"),
                new Hamburger(R.drawable.icon_hambu_how, "How to use"),
                new Hamburger(R.drawable.icon_hambu_about, "About")
            };              

      productList= (ListView) getActivity().findViewById(R.id.listView1);

      HamburgerAdapter adapter = new HamburgerAdapter(getActivity(), R.layout.hamburger_item_row, hambu_data);          

        productList= (ListView) getActivity().findViewById(R.id.listView1);  
        View header = (View)getLayoutInflater(savedInstanceState).inflate(R.layout.hamburger_item_row, null);
        productList.addHeaderView(header);
        productList.setAdapter(adapter);

        //listener          
        productList.setOnItemSelectedListener(this);
}

 //@Override
 public void onListItemClick(ListView l, View v, int position, long id) {
    Log.d("mensa", "chapuzea");
 }

@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
        long arg3) {
    // TODO Auto-generated method stub
    Log.d("mensa", "abacus");
}

@Override
public void onNothingSelected(AdapterView<?> arg0) {
    // TODO Auto-generated method stub
    Log.d("mensa", "semper");
}

}
4

3 に答える 3

1

リストビューを2回初期化しているのはなぜですか?

productList= (ListView) getActivity().findViewById(R.id.listView1);

setOnItemClick()の代わりに使用しますsetOnItemSelected()

削除するproductList.setOnItemSelectedListener(this);

使用する productList.setOnItemClickListener(this);

于 2013-09-12T07:31:58.793 に答える
0

SherlockListFragment の onListItemClick メソッドをオーバーライドできます。

このコードを試してください。

@Override
public void onListItemClick(ListView l, View v, int position, long id) {
   super.onListItemClick(l, v, position, id);
   System.out.println("onListItemClick");
}

またはOnItemSelectedListeneruseを使用する代わりにOnItemClickedListener

于 2013-09-12T07:32:42.703 に答える
0

ListView に選択モードを設定する必要があります。setChoiceMode

于 2013-09-12T07:29:14.687 に答える