1

FragmentActivityListFragment을 제어하고있다; ListFragment에는 일반 ListView, Adapter이 포함되어 있으며 내가 만든 Singleton에서 ArrayList을 그립니다. 내 목록에 항목을 추가 할 때 그들이 반응하지 않으며 OnItemClick가 호출되지 않는 이유에ListView, OnItemClick을 호출하지 않습니까?

public View onCreateView(LayoutInflater viewInflation, ViewGroup container, 
     Bundle SavedInstantState) { 
    cycleviewfragment = viewInflation.inflate(
      R.layout.cycleviewfragment_page, container, false); 
    context = getActivity().getApplicationContext(); 
    Singleton mySingleton = Singleton.getInstance(); 
    basicList = (ListView) cycleviewfragment.findViewById(android.R.id.list); 
    adapter = new ArrayAdapter<listControlObject>(getActivity() 
      .getApplicationContext(), android.R.layout.simple_list_item_1, 
      mySingleton.getA1()); 

    this.setListAdapter(adapter); 

    addButton = (Button) cycleviewfragment.findViewById(R.id.addbutton); 

    addButton.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      Intent myIntent = new Intent(getActivity(), 
        listaddactivity.class); 
      getActivity().startActivity(myIntent); 
     } 

    }); 

    basicList.setOnItemClickListener(new ListView.OnItemClickListener(){ 
       @Override 
       public void onItemClick(AdapterView<?> arg0, View arg1, 
         int arg2, long arg3) { 
        Log.d("basicListtester", "Testing onClickItem call"); 
        Intent myIntent = new Intent(getActivity(), 
          listdetailactivity.class); 
        myIntent.putExtra("selectedObjectIndex",arg2); 
        getActivity().startActivity(myIntent); 

       } 

      }); 

    adapter.notifyDataSetChanged(); 
    return cycleviewfragment; 
} 

어떤 아이디어 :

는 언제 ListFragmentonCreateView 방법에 다음 코드를 넣어?

감사합니다.

[업데이트] 난 여전히 작동하지 않았다 basicList.setAdapter(adapter);으로 구현했습니다.

ListFragmentOnItemClickListener을 구현하고 클래스에 메서드를 추가했습니다. 그것은 어느 쪽도 일하지 않았다. AdaptersetOnItemClickListener을 설정하는 ListView에의

답변

2

당신이 사용하기 때문에 ListFragment 당신은 당신의 목록 onItemClickListener을 설정하지 않아야합니다. ListFragment에는 이미 재정의해야 할 방법이 있습니다.

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

    //Do your thingy. 
} 
+0

이를 무시할 때; ListView basicList가 수신 대기하는 방법을 확인하려면 어떻게해야합니까? basicList.setOnItemClickListener (this)는 오류를 반환합니다. – Tukajo

+1

또한; 나는 당신이 ListFragment (내 버튼, 예를 들어) 내부의 다른 상호 작용 가능한보기가 있으면 물건을 엉망으로 만들 수 있다고 말하는 다른 게시물을 읽는 중입니까? – Tukajo

+0

basicList.setOnItemClickListener (this)를 호출하면 안됩니다. 리스너를 설정하지 않습니다. 자동으로 호출됩니다. – tasomaniac

1

사용

basicList.setListAdapter(adapter); 

대신

this.setListAdapter(adapter); 

를 사용하는 동일한 인스턴스.

+0

여전히 작동하지 않습니다. 내가 주위에 물건을 전환하고 내 ListFragment OnItemClickListener 구현하고 그런 식으로 설정하는 데 시도했다; 그러나 그것도 작동하지 않습니다. – Tukajo

1

ListFragment을 확장하므로 onListItemClick을 덮어 써야합니다. 문서에서 :

이 방법은 목록의 항목이 선택 될 때 호출됩니다. 하위 클래스가 재정의해야합니다.

Here 문서

+0

onListItemClick과 onItemClick간에 차이점이 있습니까? – Tukajo

+0

문서에는 ListActivity의 하위 클래스가 재정의해야한다고 나와 있습니다. – Blackbelt

+0

응답이 없습니다. 내 FragmentList 또한 트릭을하지 않은 OnItemClickListener 구현하는 데 노력했다. – Tukajo

관련 문제