2011-03-29 7 views
0

私はこの次のステップを理解するまで、GridViewレイアウトのアプリケーションをテスト目的の単一の画像にしています。私はすべての設定をしているが、イメージA、B、C、Dなどがクリックされたデザインをどのように実装してユーザ(私)が指定したWebページに表示されるかわからない。私は別の場所にリンクする各画像を必要と私は本当に私のコードにこれを実装するための助けに感謝します:あなたがしたいURLを選択するために、AndroidのGridViewでWebページにリンクするイメージを取得していますか?

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に同じインデックスで簡単にアクセスできます。

+0

google.comのような例を挙げてください。グリッドビューを使ったのはこれが初めてのことです。今日はそれを学んだだけで、まだ私の頭の中で跳ね返っています。 – peter

0

これを行う「ゼロ作業」の方法は、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を取得するための1つのアイデアです...あなたは百万の異なる方法で適切なURLを構築することができますが、鍵はIntentに渡してから起動することです。

この小さな仕事のバージョンはWebViewをこのまたは別のActivityに作成して、Webページをロードしてアプリケーションコード内にとどめることができます。 WebViewが2番目のActivityにある場合は、最初のActivityのURL文字列を2番目の文字列に渡すためにインテントを使用するのが最良です。

希望すること!

+0

ありがとう、WebViewを作成する方法についての良いリンクがありますか、私は現在行っているようにブラウザを起動する代わりに、すべてをアプリケーションに保存したいと考えています。 – peter

+0

SDKドキュメントのWebViews記事を試してみてください、サンプルプロジェクトへのリンクもあります:http://developer.android.com/resources/articles/using-webviews.html – Devunwired

関連する問題