2014-08-29 4 views
0

캘린더를 표시하는 앱을 만들고 하루에 클릭하면 ListView 사용자 정의를 표시하고 싶습니다.내 코드가 OnCreate에서 작동하지만 OnItemClickListener에서 작동하지 않는 이유

내 문제는 내가 OnCreate 코드를 사용할 때 작동하지만 캘린더의 OnItemClickListener에서 사용했을 때 아무 것도하지 않는다는 것입니다.

여기 내 코드입니다. 나는 작업을 감사하고 내가 응용 프로그램을 실행할 때 묻는다면, 나는리스트 뷰의 findViewById를 할

for(int i = 0; i < 5; i++) { 
     RowItem item = new RowItem(imagesCharacter[i], imagesAnime[i], characters[i], animes[i]); 

     rowItems.add(item); 
    } 

    CustomListViewAdapter myAdapter = new CustomListViewAdapter(getApplicationContext(),  R.layout.list_item, rowItems); 
    listView.setAdapter(myAdapter); 
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> parent, 
       View view, int position, long id) { 
      // TODO Auto-generated method stub 
      Toast toast = Toast.makeText(getApplicationContext(), 
        "Item" + (position + 1) + ": " + rowItems.get(position), Toast.LENGTH_LONG); 
      toast.setGravity(Gravity.BOTTOM|Gravity.CENTER_HORIZONTAL, 0, 0); 
      toast.show(); 
     } 

    }); 

도움이됩니다.

해결 방법 :

문제점을 발견했으며 현재 작동합니다.

문제는 ListView가 LineViewLayout의 자식이었고 findViewById를 수행했을 때 항상 또는 Null이 발생했거나 작동하지 않는 것이 었습니다.

그래서 레이아웃을 삭제하고 내 findViewById가 작동했습니다.

모든 해답을 제공해 주셔서 감사합니다.

+0

그냥이 라인 toast.setGravity (Gravity.BOTTOM을 제거 | 중력 .CENTER_HORIZONTAL, 0, 0); 다시 시도하십시오. – Piyush

답변

0

getApplicationContext() (가능하면 피해야 함) 대신 YourActivityName.this을 사용하십시오.

0

수행하여 활동의 컨텍스트에 대한 참조를 만듭니다

private Context mContext; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState);   
    mContext = this; 
} 

은 다음 OnItemClickListener 등으로 상황에 맞는 참조를 전달 :

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     Toast toast = Toast.makeText(mContext, "Item" + (position + 1) + ": " + rowItems.get(position), Toast.LENGTH_LONG); 
     // Other codes here. 
    } 
}); 
관련 문제