2011-03-29 4 views
0

GridView 레이아웃이있는 응용 프로그램에서이 다음 단계를 알아낼 때까지 테스트 용 단일 이미지가 있습니다. 모든 것을 설정했지만 이미지 A, B, C, D 등을 클릭 한 결과가 사용자가 지정한 웹 페이지에 착륙하는 디자인을 구현하는 방법을 모르겠습니다. 나는 다른 위치로 연결하기 위해 각각의 이미지를 필요로하고 내가 정말 내 코드로이를 구현하기 위해 도움을 주셔서 감사합니다 : 당신이 원하는 URL을 선택안드로이드의 GridView에서 웹 페이지에 링크 할 이미지를 얻고 싶습니까?

public class ImageAdapter extends BaseAdapter { 
    private Context mContext; 

    public ImageAdapter(Context c) { 
     mContext = c; 
    } 

    public int getCount() { 
     return mThumbIds.length; 
    } 

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

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

    // create new ImageView for each item 
    public View getView(int position, View convertView, ViewGroup parent) { 
     ImageView imageView; 

     if (convertView == null) { 
      imageView = new ImageView(mContext); 
      imageView.setLayoutParams(new GridView.LayoutParams(150, 150)); 
      imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
      imageView.setPadding(5, 5, 5, 5); 
     } 

     else { 
      imageView = (ImageView) convertView; 
     } 

     imageView.setImageResource(mThumbIds[position]); 
     return imageView; 
    } 

    // references to images 
    private Integer[] mThumbIds = { 
     R.drawable.A, R.drawable.B, 
     R.drawable.C, R.drawable.D, 
     R.drawable.E, R.drawable.F, 
     R.drawable.G, R.drawable.H, 
    }; 
} 

답변

0

가 (단지 위치를 반환) 어댑터에주는 getItemId()를 사용 가기 위해. mThumbid와 마찬가지로, 일치하는 URL을 보유하는 병렬 배열이 있으므로 이미지를 클릭하면 해당 URL에 동일한 URL에서 쉽게 액세스 할 수 있습니다.

+0

google.com과 같은 예를 들어 주시겠습니까? 이것은 그리드 뷰를 사용한 첫 번째 시간이며 방금 배웠으며 여전히 내 머리 속에서 튀어 오릅니다. – peter

0

이 작업을 수행하는 "제로 작업 (zero-work)"방법은 단순히 OnItemClickListener에서 장치의 브라우저에서 URL을 열 수있는 인 텐트를 시작하는 것입니다. 다음과 같이하십시오 :

//Obtain a reference to the view in your layout somehow...I chose findViewById() 
GridView grid = (GridView)findViewById(R.id.peters_grid); 
grid.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View v, int position, long id) { 
     //"position" is the location of the image clicked 
     String url = arrayOfUrls[position]; 
     Intent intent = new Intent(Intent.ACTION_VIEW); 
     intent.setData(Uri.parse(url)); 
     startActivity(intent); 
    } 
}); 

여기서 문자열 배열에서 각 위치의 올바른 URL을 가져옵니다. 이것은 올바른 URL을 얻기위한 하나의 아이디어 일뿐입니다. 다양한 방법으로 적절한 URL을 구성 할 수 있지만 핵심은 URL을 Intent으로 전달한 다음 실행하는 것입니다.

이 "작은 일"버전은 WebView을이 또는 다른 Activity에 생성하여 웹 페이지를로드하고 응용 프로그램 코드 내에있을 수 있습니다. WebView이 두 번째 Activity 인 경우 인 텐트를 사용하여 첫 번째 Activity의 URL 문자열을 두 번째 문자열로 전달하는 것이 가장 좋습니다.

희망이 도움이됩니다!

+0

감사합니다. WebView를 만드는 방법에 대한 좋은 링크가 있습니까? 현재 제가하는 것처럼 브라우저를 시작하지 않고 모든 것을 앱에 보관하는 것이 좋습니다. – peter

+0

SDK 설명서에서 WebViews 사용 , 샘플 프로젝트에 대한 링크도 있습니다 : http://developer.android.com/resources/articles/using-webviews.html – Devunwired

관련 문제