1

スワイプ可能な例でタブレイアウトを使用しています。タブのオンはリストビューで、リストアイテムをクリックすると新しいフラグメントが開きます。私の問題は、リスト項目をクリックしても何も起こらないことです。次の例を使用して、コード androidhive.info/category/tab-view を追加しています

追加リスト

import android.os.Bundle;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.app.ListFragment;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class AddingList extends ListFragment {
  @Override
  public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    String[] values = new String[] { "List", "iPhone", "WindowsMobile",
        "Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X",
        "Linux", "OS/2" };
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
        android.R.layout.simple_list_item_1, values);
    setListAdapter(adapter);

  }

  @Override
  public void onListItemClick(ListView l, View v, int position, long id) {
      FragmentTransaction ft = getFragmentManager().beginTransaction();
         ft.replace(R.id.pager, new List()).commit();
  }
} 
4

4 に答える 4

3

コードを onCreateView() メソッドから onActivityCreated() メソッドに移動します

  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    String[] values = new String[] { "List", "iPhone", "WindowsMobile",
    "Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X",
    "Linux", "OS/2" };

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
    android.R.layout.simple_list_item_1, values);

    setListAdapter(adapter);

    return super.onCreateView(inflater, container, savedInstanceState);
 }

アップデート:

  @Override
  public void onListItemClick(ListView l, View v, int position, long id) {


      FragmentManager manager = getFragmentManager();
      FragmentTransaction ft = manager.beginTransaction();
      ft.replace(R.id.pager, new Home());
      ft.commit();

  }

このメソッドを Fragment に実装します。

 @Override
 public void setUserVisibleHint(boolean isVisibleToUser) {
  super.setUserVisibleHint(isVisibleToUser);

  // Make sure that we are currently visible
  if (this.isVisible()) {
    // Do your stuff here
    if (!isVisibleToUser) {
        Log.d("MyFragment", "Not visible");

    }
  }
  }
于 2014-03-12T04:40:57.493 に答える
1

これを試して 。アダプターを設定する必要があります

        ListView mListContainer = (ListView) findViewById(R.id.pager1);


        //YOURADAPTER NAME
        mInformedListAdapter = new InformedListAdapter(mContext, mStatistics,this);

        //mStatistics is the my  private Map<String, Map<String, String>> mStatistics = new HashMap<String, Map<String, String>>();

        mListContainer.setAdapter(mInformedListAdapter);
        mListContainer.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

         //DO YOURS



            }
        });
于 2014-03-12T04:56:37.497 に答える
1

これを試して

 ListView list = (ListView) findViewById(R.id.pager1);

 list.setOnItemClickListener(new OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> arg0, View view, int arg2,
                        long arg3) {
                    // TODO Auto-generated method stub
                                     //Your action


                }
            });
于 2014-03-12T04:48:01.300 に答える
0

オーバーライドされたメソッドで super.onItemClickListener メソッドを呼び出す必要があります

于 2014-09-20T10:56:02.810 に答える