3

ピンタレストのようなレイアウトを作成しようとしています。私はこれを達成する方法を見つけます:ピンタレストのような Android 異種グリッドビュー? !

ただし問題は、各画像をクリックした後にアイテムの詳細を表示したいということです。しかし、LinearLayout.addView() を使用してすべての ImageView を追加しているので、クリック可能にする方法がわかりません。

ビューの各項目をクリックできる方法はありますか?

4

4 に答える 4

1

使用する:

imageView.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            //do magic
        }
    });

そして、レイアウト ファイルで、ImageView をクリック可能としてマークします。

<ImageView
...
android:clickable="true">
...
</ImageView>
于 2012-09-21T15:32:01.793 に答える
1

クリックすると表示されるタグ情報を画像ビューに追加することで、これを非常に簡単に行うことができます。

画像ビューを追加すると、次のようになります。

ImageView iv = new ImageView(context);
iv.setOnClickListener(your_listener);
iv.setTag("Item information");
linearLayout.addView(iv);

次に、クリックリスナーで:

public void onClick(View v) {
    if(v instanceof ImageView) {
        String info = (String)v.getTag();
        /* Show information here */
    }
}
于 2012-09-21T14:55:04.130 に答える
1

これを使って :

view.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // ADD your action here

            }
        });

または、クラスにインターフェイスを実装させ、メソッドOnClickListnerをオーバーライドしますonClick()

于 2012-09-21T14:57:01.353 に答える
0

リンクしたコードに基づいて、作成時に各画像ビューにリスナーを追加できます。

linear1 = (LinearLayout) findViewById(R.id.linear1);
linear2 = (LinearLayout) findViewById(R.id.linear2);
linear3 = (LinearLayout) findViewById(R.id.linear3);

for(int i=0;i<n;i++)
{
   ImageView iv = new ImageView(this);
   iv.setImageResource(R.id.icon);
   iv.setOnClickListener(new OnClickListener() {
       public void onClick(View v) {
           //Your click code
       }
   }

   int j = count % 3;  <---- 
   if(j==0)
       linear1.addView(iv);
   else if(j==1)
       linear2.addView(iv);
   else
       linear3.addView(iv); 
}
于 2012-09-21T14:55:21.763 に答える