2013-01-09 3 views
0

i이 GridView를 사용하여 이미지를 표시하고 있습니까? 하단 줄에서 이미지를 누르고 다른 활동의 내보기에서 이미지를 가져오고 싶습니다. GridView (안드로이드)에서 이미지를 누르면 응용 프로그램이 다운 됨

난에 사용하고 코드 내 OnItemClickListener-

 GridView grid = (GridView) findViewById(R.id.grid_view); 
    grid.setOnItemClickListener(new OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> arg0, View arg1, int position, 
       long arg3) { 
      // TODO Auto-generated method stub 
      View bg = (View)findViewById(R.id.background); 
      bg.setBackgroundResource(ImageAdapter.mThumbIds[position]); 

      finish(); 

     } 
    }); 

    grid.setAdapter(new ImageAdapter(this)); 

내 응용 프로그램 충돌이 이유는 null로보기 (BG) 반환하기 때문이다. 내가 어떻게 고칠 수 있니? 그것을 올바르게 만드시겠습니까? 나는 이걸로 나를 도울 누군가가 정말 좋아 .. 고마워! 당신이 당신의 activity_main.xmlR.id.background이 말했듯이

+0

확실하지 않은 경우 ID가있는보기를 가져 오지 못하고 있습니다. (보기) findViewById (R.id.background); null을 돌려줍니다 – Pragnani

+0

맞습니다! 나는 null로보기를 얻는다. 왜 그 일이 일어 났는가? 내가보기에 제시된 활동에보기가 없기 때문에? 어떻게 바꿀 수 있습니까? –

+0

@AmirFoghel : 레이아웃에'R.id.background' 뷰가 있습니까? –

답변

1

,이 같은 setContentView(...)로 처음 활동에 그 레이아웃을 할당 할 수 있습니다

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    GridView grid = (GridView) findViewById(R.id.grid_view); 
    grid.setAdapter(new ImageAdapter(this)); 

    gridview.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View v, int position, long id) { 
      View bg = (View)findViewById(R.id.background); 
      bg.setBackgroundResource(ImageAdapter.mThumbIds[position]); 

      finish(); 
     } 
    }); 
} 

귀하의 findViewById()

콘텐츠보기 것을 필요로한다. ImageAdapterGridView의 기본 사용법입니다.

참고 :이 솔루션을 사용하면 같은 레이아웃에 이라는 ID를 가진 GridView도 있어야합니다.

0

도움 주셔서 감사합니다. 마침내 나는 이미지의 소스를 전달하고 다른 뷰에서 시작하도록 설정했습니다. 어쨌든 고마워, !

관련 문제