2016-11-15 3 views
0

내 질문은 this thread과 매우 유사하지만 제대로 대답하지 못했습니다. ImageAdapter 설정이 있습니다.ImageAdapter 내에서 XML 이미지 배열에 액세스

public class ImageAdapter extends BaseAdapter { 
    private Context mContext; 
    int[] mImages; 

    public ImageAdapter(Context c, int[] images) { 
     mContext = c; 
     mImages = images; 
    } 

    @Override 
    public int getCount() { 
     return 0; 
    } 

    @Override 
    public Object getItem(int position) { 
     return null; 
    } 

    @Override 
    public long getItemId(int position) { 
     return 0; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     ImageView imageView; 
     if (convertView == null) { 
      // if it's not recycled, initialize some attributes 
      imageView = new ImageView(mContext); 
      imageView.setLayoutParams(new GridView.LayoutParams(200, 200)); 
     } else { 
      imageView = (ImageView) convertView; 
     } 
     imageView.setImageResource(mImages[position]); 
     return imageView; 
    } 
} 

그리고 나는 이미지를 XML로 만들고 싶습니다.

내 MainActivity 클래스에서
<integer-array name="images"> 
    <item>@drawable/image1</item> 
    <item>@drawable/image2</item> 
    <item>@drawable/image3</item> 
</integer-array> 

나는 이미지의 배열을 얻고 ImageAdapter로 통과 시도했지만 그럴 수 없어;

public class MainActivity extends AppCompatActivity { 
    private int images[] = getResources().getIntArray(R.array.images); 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     GridView gridview = (GridView) findViewById(R.id.gridView); 
     gridview.setAdapter(new ImageAdapter(MainActivity.this, images)); 
    } 
} 
나는 현재 오류 메시지가 무엇입니까

:

에 의해 발생 : java.lang.NullPointerException이 : 시도는 가상 메소드를 호출하기 '를 android.content.res.Resources android.content.Context.getResources() 'null 객체 참조에

내 앱이로드 될 때 충돌이 발생합니다. ImageAdapter에 GridView의 XML 이미지를 표시하려고합니다.

+0

불분명의 사용하려고 - 당신은 "당신이 할 수없는"하지만에 확장하지 않는 것이 단순히 상태. 코드의 동작은 무엇입니까 - 오류가 발생합니까? 작동하지만 예상되는 결과를 제공하지 않는 것입니까? – David

+0

죄송합니다. 응용 프로그램을로드하자마자 충돌이 발생하고 "Caused by : java.lang.NullPointerException : 가상 메서드 호출 시도 'android.content.res.Resources android.content.Context.getResources() 'null 개체 참조에 ", 내 질문은, 어떻게 ImageView를 XML 파일에서 내 GridView 디스플레이 이미지에 대한 만들 수 있습니까? @ henners66 – Stafford

답변

0

private int images[] = {R.drawable.image1, R.drawable.image3, R.drawable.image3}; 

대신 문제가 무엇인지

private int images[] = getResources().getIntArray(R.array.images); 
+0

이것은 작동하지만 코드에서 정의 된 것보다 XML 파일에서 이미지를 가져올 수 있기를 원합니다. @Malik Abu Qaoud – Stafford

+0

setImageResource는 int 값만 사용하며 이미지 배열 (getResources()) .getIntArray (R.array.images)) XML 파일에서 이미지의 int 값을 올바르게 가져옵니다. –

+0

그 다음이 수정 사항은 무엇입니까? – Stafford

관련 문제